spring-boot-maven-plugin
...大约 3 分钟
spring-boot-maven-plugin
参考
1、goal
- repackage : 默认值,就是在执行
mvn package
之后,再次打包,并把第一次生成的包加上后缀.origin
- run : 运行SpringBoot应用
- start :
mvn integration-test
,再进行管理 - stop :
mvn integration-test
,再进行管理 - build-info : 生成构件信息
build-info.properties
文件
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
如果不加上这个插件会出现什么情况呢?可以看到大小很小只有几KB,说明打包的有问题。
加上插件之后,再打包看一下:可以看到,打包正常了,会出现一个后缀为.original
的文件,也就是上面第一个打包出来的。
可以看到这个插件是非常重要的,在开发过程中是必须要配置的,如上配置其实就够了,但是他还有如下功能:
2、 配置打包名称
<configuration>
<classifier>AppName</classifier><!--指定打包后的文件名-->
</configuration>
3、排除指定的jar包依赖
<excludes>
<exclude>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
</exclude>
</excludes>
4、排除spring-boot-devtools依赖
因为如果你自动勾选创建SpringBoot项目之后会自动添加这个依赖,如果自己管理可以直接删除这个依赖,因为他会被默认打包进去。
<executions>
<execution>
<id>repackage</id>
<configuration>
<excludeDevtools>true</excludeDevtools>
</configuration>
</execution>
</executions>
5、指定主类
这里就是指定启动类的主类是哪一个,如果提示找不到主类,可以在这里设置一下。
<configuration>
<mainClass>com.jack.onebyone.OneByOneApplication</mainClass>
</configuration>
6、配置profile
配置了之后感觉没啥用。
<configuration>
<profiles>
<profile>dev</profile>
</profiles>
</configuration>
7、配置JVM参数
和上面的一样,也不清楚怎么使用。
<configuration>
<jvmArguments>
-Dspring.profiles.active=dev -Xmx500m -Xms500m
</jvmArguments>
</configuration>
8、打包scope为system的第三方jar
问题描述:
SpringBoot项目中引入第三方jar包,本地运行成功,打包部署运行失败问题
原因:
SpringBoot项目中引入第三方jar包,当项目打包部署的时候, <scope>system</scope>
类型的依赖不会自动打包进去,需要对pom.xml文件进行处理,这样第三方的jar包才能打包进去。

sqlserver工具包
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>sqljdbc4</artifactId>
<scope>system</scope>
<version>4.0</version>
<systemPath>${project.basedir}/libs/sqljdbc4-4.0.jar</systemPath>
</dependency>
解决方法:在< build>
标签中添加
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
最终
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
打包到其他目录
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<!-- 将 源码目录中的 xml也打包到classes中-->
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>**</include>
</includes>
</resource>
<!--将libs下的文件打包到jar包里-->
<!-- <resource>
<directory>libs</directory>
<targetPath>BOOT-INF/lib/</targetPath>
<includes>
<include>**/*.jar</include>
</includes>
</resource>-->
<!-- <resource>
<directory>libs</directory>
<targetPath>${project.build.directory}/spd-lib</targetPath>
<includes>
<include>**/*.jar</include>
</includes>
</resource>-->
</resources>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!-- <includeSystemScope>false</includeSystemScope>-->
<fork>true</fork><!-- 如果没有该配置,热部署的devtools不生效 -->
<executable>true</executable>
<layout>ZIP</layout>
<!--这里是填写需要包含进去的jar,
必须项目中的某些模块,会经常变动,那么就应该将其坐标写进来
如果没有则nothing ,表示不打包依赖 -->
<includes>
<include>
<groupId>nothing</groupId>
<artifactId>nothing</artifactId>
</include>
</includes>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<delimiters>@</delimiters>
<useDefaultDelimiters>false</useDefaultDelimiters>
</configuration>
</plugin>
<!--拷贝依赖到jar外面的lib目录-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<!--指定的依赖路径-->
<outputDirectory>
${project.build.directory}/spd-lib
</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
你认为这篇文章怎么样?
- 0
- 0
- 0
- 0
- 0
- 0