Spring Boot 项目打包 boot-inf 文件夹的问题 spring-boot maven打包,一般pom.xml文件里会加 org.springframework.boot... spring-boot-maven-plugin 这样打的jar里会多一个目录BOOT-INF。...configuration> true Spring Boot Maven插件打包后,包内没有BOOT-INF...目录 使用maven插件打包后,发现包很小100来kb,显然是不对,包内缺少BOOT-INF目录,BOOT-INF是用于存放引用的外部lib的,所以缺少,打出来的包根本不能运行: 解决办法: 在自己项目的
今天创建了一个SpringBoot项目A,打成jar后,在另一项目B中依赖A项目,因为A项目打包后出现了BOOT-INF文件夹 ?...而我们的源码被放在了BOOT-INF中,造成我们在B项目中虽然添加了依赖,但是import类的时候出错。 这时我们只需要在A项目的pom中添加如下配置即可 ?
org.cloudfoundry.springboot", "version": "v1.0.88" }, "metadata": { "classes": "BOOT-INF.../classes/", "classpath": [ "/workspace/BOOT-INF/classes", "/workspace/BOOT-INF/...lib/attoparser-2.0.5.RELEASE.jar", "/workspace/BOOT-INF/lib/classmate-1.4.0.jar", "/workspace.../BOOT-INF/lib/hibernate-validator-6.0.18.Final.jar", "/workspace/BOOT-INF/lib/jackson-annotations...-2.9.10.jar", ... ], "lib": "BOOT-INF/lib/", "start-class": "io.buildpacks.example.sample.SampleApplication
/BOOT-INF/lib/jackson-module-parameter-names-2.9.10.jar!.../BOOT-INF/lib/micrometer-registry-elastic-1.1.18.jar!.../BOOT-INF/lib/spring-boot-actuator-2.1.17.RELEASE.jar!.../BOOT-INF/lib/spring-boot-starter-2.1.17.RELEASE.jar!.../BOOT-INF/lib/spring-security-web-5.1.12.RELEASE.jar!
project.basedir}/lib/eis_protobuf.jar springboot-maven-plugin打包的第一级目录为Boot-INF...,如果不做任何配置,直接mvn clean package会发现无法把本地的jar打进Boot-INF中,则此时要做如下配置 方法一 在pom.xml的resources节点添加如下内容 lib BOOT-INF/lib/...exclusion> 3、修改打包插件,不使用spring-boot-maven-plugin插件打包,因为这个打包插件会把jar打包在Boot-INF
/BOOT-INF/lib/fastjson-1.2.58.jar!.../BOOT-INF/lib/fastjson-1.2.58.jar!.../BOOT-INF/lib/fastjson-1.2.58.jar!.../BOOT-INF/lib/fastjson-1.2.58.jar!.../BOOT-INF/lib/fastjson-1.2.58.jar!
但是通过maven构建的jar包含 \BOOT-INF\lib\下的所有依赖jar包,导致jar包文件太大。 本文将lib文件夹下所依赖的jar包分离出来,解决文件过大问题。...二、jar包分离实施步骤 (1)按照正常的springboot项目打包方式,对项目进行打包package,其打包后目录如下: |--META-INF |--BOOT-INF |--classes...找到\BOOT-INF\lib文件夹,将lib文件夹复制出来,后续使用。...其中\BOOT-INF\lib目录下存放着所有的依赖jar包,ojdbc8-19.8.0.0.jar / lombok-1.18.16.jar / spring-boot-2.4.1.jar … 占用了大量的空间
而我们项目的启动类SpringBootDemoApplication定义在Start-Class属性中, JarLauncher会将BOOT-INF/classes下的类文件和BOOT-INF/lib下依赖的...关于 jar 官方标准说明请移步 JAR File Specification JAR (file format) SpringBoot的jar包,会有3个文件夹: BOOT-INF:存放自己编写并编译好的.../ Spring-Boot-Lib: BOOT-INF/lib/ Build-Jdk-Spec: 1.8 Spring-Boot-Version: 2.4.0 Created-By: Maven Jar...entry.getName().equals("BOOT-INF/classes/") : entry.getName().startsWith("BOOT-INF/lib/")); }...location : "BOOT-INF/classpath.idx"; } protected boolean isPostProcessingClassPathArchives() {
解压XXX.jar包,然后把我们的扩展包dubbo-ext.jar 扔到 BOOT-INF/lib中; 然后重新打包; 这种方式应该是也可以实现的; 但是却比较繁琐;这里推荐第二种方式 使用命令...jar -uf0 XXX.jar BOOT-INF/lib/ 直接将我们的扩展包dubbo-ext.jar直接放到XXX.jar中的 BOOT-INF/lib/中; 下面我们具体详细讲一下这个操作步骤...那么这个BOOT-INF/lib就是我们的目标路径; Ok,知道了路径,我们把刚刚解压之后的文件全部删除掉;(只是解压出来看看路径而已) 在当前路径创建目标文件路径 mkdir -p BOOT-INF...执行命令jar -uf0 features-service-0.0.1-SNAPSHOT.jar BOOT-INF/lib/ 执行这条命令的路径一定要对;就在BOOT-INF文件夹同级别 ?...参考文章 springBoot项目不重新上传jar包,增量升级步骤 更新spring boot jar包中的BOOT-INF/lib目录下的jar包
. ├── BOOT-INF │ └── classes │ └── bootstrap.properties └── 你的.jar 3 directories, 2 files zip.../BOOT-INF/classes/bootstrap.properties ..../BOOT-INF/classes/bootstrap.properties 结果 zanglikun@zanglikundeMacBook-Pro 2024-06 % zip -u archi-adapter.../BOOT-INF/classes/bootstrap.properties ..../BOOT-INF/classes/bootstrap.properties updating: BOOT-INF/classes/bootstrap.properties (deflated 59%)
/ BOOT-INF/classes/ BOOT-INF/classes/com/ BOOT-INF/classes/com/ricky/ META-INF/maven/ META-INF/maven/...BOOT-INF/lib/log4j-api-2.10.0.jar BOOT-INF/lib/jul-to-slf4j-1.7.25.jar BOOT-INF/lib/javax.annotation-api...-2.9.5.jar BOOT-INF/lib/jackson-annotations-2.9.0.jar BOOT-INF/lib/jackson-core-2.9.5.jar BOOT-INF/lib....jar BOOT-INF/lib/tomcat-embed-el-8.5.29.jar BOOT-INF/lib/tomcat-embed-websocket-8.5.29.jar BOOT-INF/...-3.3.2.Final.jar BOOT-INF/lib/classmate-1.3.4.jar BOOT-INF/lib/spring-web-5.0.5.RELEASE.jar BOOT-INF/
/BOOT-INF/lib/*.jar或[ArchiveDir]/BOOT-INF/lib/*.jar List getNestedArchives(EntryFilter filter...classes are included inside a /BOOT-INF/classes directory....按照定义,JarLauncher可以加载内部/BOOT-INF/lib下的jar及/BOOT-INF/classes下的应用class。...至此,才执行我们应用程序主入口类的main方法,所有应用程序类文件均可通过/BOOT-INF/classes加载,所有依赖的第三方jar均可通过/BOOT-INF/lib加载。 ?...---- 小结 JarLauncher通过加载BOOT-INF/classes目录及BOOT-INF/lib目录下jar文件,实现了fat jar的启动。
第二,如何加载 BOOT-INF/class 目录下的类,以及 BOOT-INF/lib 目录下内嵌的 jar 包中的类。 下面,尾随艿艿,一起来抽丝剥茧! 2....文件,以及 BOOT-INF/lib 目录下的 jar 包。...().startsWith(BOOT_INF_LIB); } 目的就是过滤获得,BOOT-INF/classes/ 目录下的类,以及 BOOT-INF/lib/ 的内嵌 jar 包。.../BOOT-INF/classes!...省略其他 jar 包 从执行结果可以看出,BOOT-INF/classes/ 目录被归类为一个 Archive 对象,而 BOOT-INF/lib/ 目录下的每个内嵌 jar 包都对应一个 Archive
JRA,下图我们用maven命令直接编译打包 执行mvn clean package -DskipTests=true -P test ,生成的文件如下 这个JAR我们分两部分来讲解请看下图 BOOT-INF...org.springframework.boot.loader.JarLauncher Start-Class: com.xxx.xxxxApplication Spring-Boot-Classes: BOOT-INF.../classes/ 2、Spring-Boot-Lib: BOOT-INF/lib/ 应用程序相关属性 1、Main-Class org.springframework.boot.loader.JarLauncher.../classes/"; static final String BOOT_INF_LIB = "BOOT-INF/lib/"; public JarLauncher() { }...entry.getName().equals("BOOT-INF/classes/") : entry.getName().startsWith("BOOT-INF/lib/"); }
org.springframework.boot.loader.JarLauncher Start-Class: com.xue.study.WebsocketClientDemo Spring-Boot-Classes: BOOT-INF.../classes/ Spring-Boot-Lib: BOOT-INF/lib/ Created-By: Apache Maven 3.5.2 Build-Jdk: 1.8.0_144 Implementation-URL...org.springframework.boot.loader.JarLauncher + Start-Class: com.xue.study.WebsocketClientDemo Spring-Boot-Classes: BOOT-INF.../classes/ Spring-Boot-Lib: BOOT-INF/lib/ 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。
这个目录叫BOOT-INF,打开一看,里面是com文件。。。原来罪魁祸首就在这里,把BOOT-INF里的目录挪出来,然后就不报错了。。项目终于发布上线了!...org.springframework.boot spring-boot-maven-plugin 这样打的jar里会多一个目录BOOT-INF... true #如果不加这个配置,聚合工程打包后目录结构为 BOOT-INF
通过unzip命令解压jar文件,基本可以得到大致如下的目录结构: spring-boot-demo ├── META-INF │ └── MANIFEST.MF ├── BOOT-INF.../classpath.idx Archiver-Version: Plexus Archiver Built-By: typhoon Spring-Boot-Layers-Index: BOOT-INF...,在执行java -jar时就会调用JarLauncher中执行main方法,所有应用程序类文件均可通过/BOOT-INF/classes加载,所有依赖的第三方jar均可通过/BOOT-INF/lib加载.../classes/"; static final String BOOT_INF_LIB = "BOOT-INF/lib/"; public JarLauncher() {.../classes/和BOOT-INF/lib/,然后把获取到的archives List传到LaunchedURLClassLoader去加载。
NESTED_ARCHIVE_ENTRY_FILTER = (entry) -> { if (entry.isDirectory()) { return entry.getName().equals("BOOT-INF.../classes/"); } return entry.getName().startsWith("BOOT-INF/lib/"); }; public JarLauncher() {...NESTED_ARCHIVE_ENTRY_FILTER.matches(entry); } @Override protected String getArchiveEntryPathPrefix() { return "BOOT-INF...其次是这里面有两个路径 BOOT-INF/classes/ 和 BOOT-INF/lib/ 这两个路径正好是我们的源码路径和第三方依赖路径。
resource> ${project.basedir}/lib BOOT-INF...resource> ${project.basedir}/lib BOOT-INF...--BOOT-INF/classes/--> 这个的作用是将sapjco3.jar打进BOOT-INF
image jar文件和war文件有一点不同,没有WEB-INF,改成了BOOT-INF。 我们所有的自己的class都在BOOT-INF/classes下面。...外部依赖在BOOT-INF/lib下。...springboot-fatjar Implementation-Version: 0.0.1-SNAPSHOT Start-Class: com.flydean.FatJarApp Spring-Boot-Classes: BOOT-INF.../classes/ Spring-Boot-Lib: BOOT-INF/lib/ Build-Jdk-Spec: 1.8 Spring-Boot-Version: 2.2.2.RELEASE Created-By
领取专属 10元无门槛券
手把手带您无忧上云