目标:
1.将普通的MAVEN JAVA工程打包成SpringBoot可运行的jar包
2.将application.yml和log4j2.xml
1.打包
SpringBoot项目打包要求将依赖的jar全部打进去,因为SpringBoot的自动配置需要用到里面的spring.factory文件,该文件是自动配置的关键步骤之一
如果在IDEA或者ECLPSE里面使用直接创建SpringBoot工程,然后打包即可完成上面的需求,但我是在Idea里面创建的普通MAVEN工程,然后打包依赖的任何JAR都没有打进去
然后百度了半天,分享一下:
在<build></build>标签中添加如下配置
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>1.5.9.RELEASE</version>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
执行打包操作
打包出来结果
查看打包内部结果
配置文件外置
在pom.xml文件中的<build></build>增加如下内容
<resources>
<resource>
<directory>src\main\resources</directory>
<excludes>
<exclude>application.yml</exclude>
<exclude>log4j2.xml</exclude>
</excludes>
</resource>
</resources>
重新打包
对比发现application.yml和log4j2.xml没有在jar包中
启动测试
java -jar provider-1.0.0.jar --logging.config=./log4j2.xml
启动正常
日志也正常输出
结束