SpringBoot项⽬打包问题...
Spring Boot 项⽬打包 boot-inf ⽂件夹的问题
spring-boot maven打包,⼀般l⽂件⾥会加
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
这样打的jar⾥会多⼀个⽬录BOOT-INF。
引起问题: 程序包不存在。
解决办法: 如果A⼦模块包依赖了B⼦模块包,在B⼦模块的pom⽂件,加
⼊ configuration.skip = true
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
Spring Boot Maven插件打包后,包内没有BOOT-INF⽬录
使⽤maven插件打包后,发现包很⼩100来kb,显然是不对,包内缺少BOOT-INF⽬录,BOOT-INF是⽤于存放引⽤的外部lib的,所以缺少,打出来的包根本不能运⾏:
解决办法:
在⾃⼰项⽬的pom中,或者⽗pom中,在plugin中添加executions节点代码,重新打包即可解决。
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
SpringBoot中如何引⼊本地jar包,并通过maven把项⽬成功打包成jar包部署
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
</plugins>
</build>
在sprinboot项⽬中l⽂件加<includeSystemScope>true</includeSystemScope>,代表maven打包时会将外部引⼊的jar包(⽐如在根⽬录下或resource⽂件下新加外部jar包)打包到项⽬jar,在服务器上项⽬才能运⾏,不加此配置,本地可以运⾏,因为本地可以再lib下到外部包,但是服务器上jar中是没有的。
Spring Boot项⽬动态打包
build节点新增,如下代码:
<resources>
<resource>
<directory>src/main/resources/</directory>
<excludes>
<exclude&l</exclude>
</excludes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/resources/</directory>
<includes>
<include&l</include>
maven打包本地jar包</includes>
<!-- ⽤参数化值替换⽂件⽂本内容(如@profileActive@) --> <filtering>true</filtering>
</resource>
</resources>
然后l⽂件继续添加以下配置
<profiles>
<profile>
<!-- 本地开发环境打包: mvn clean package -P dev -->
<id>dev</id>
<properties>
<profileActive>druid,dev</profileActive>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<!-- 测试环境打包: mvn clean package -P test -->
<id>test</id>
<properties>
<profileActive>druid,test</profileActive>
</properties>
</profile>
<profile>
<!-- ⽣产环境打包: mvn clean package -P prod -->
<id>prod</id>
<properties>
<profileActive>druid,prod</profileActive>
</properties>
</profile>
<profile>
<!-- 预发布环境打包: mvn clean package -P pre --> <id>pre</id>
<properties>
<profileActive>druid,prod,pre</profileActive>
</properties>
</profile>
</profiles>
spring:
profiles:
active: @profileActive@
@profileActive@打包时,会被动态替换成profileActive节点的值。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论