标签:总结 maven 插件 plugin boot jar Maven source 源码
常用 Maven 插件总结
1、maven-source-plugin 提供项目自动将源码打包并发布的功能,在需要发布源码项目的pom.xml文件中添加如下代码即可执行mvn install,maven会自动将source install到repository 。 … 执行mvn source:jar,单独打包源码。
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <version>2.2.1</version> <!-- 绑定source插件到Maven的生命周期,并在生命周期后执行绑定的source的goal --> <executions> <execution> <id>attach-sources</id> <!-- 绑定source插件到Maven的生命周期 --> <phase>package</phase> <goals> <!--在生命周期后执行绑定的source插件的goals --> <goal>jar-no-fork</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
2、maven-compiler-plugin 编译Java源码,一般只需设置编译的jdk版本。
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> <encoding>UTF-8</encoding> </configuration> </plugin>
- source: 源代码编译版本;
- target: 目标平台编译版本;
- encoding: 字符集编码。
3、spring-boot-maven-plugin 插件后,当运行maven打包的命令,项目会被打包成一个可以直接运行的jar包,使用"java -jar"可以直接运行。其中xxx-0.0.1-SNAPSHOT.jar.original文件,用户可将.original后缀去掉便可得到用户自己编写的项目包。而xxx-0.0.1-SNAPSHOT.jar文件往往比上面那个文件要大的多,其实其内部已经将用户编写的项目所相关的依赖都打进去了。
<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>2.0.5.RELEASE</version> <configuration> <mainClass>com.xx.xx</mainClass> </configuration> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin>
问题,打包后是直接可运行的jar, 其他的项目无法直接依赖可运行的jar,解决方案:
<plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <executions> <execution> <id>repackage</id> <configuration> <classifier>exec</classifier> </configuration> </execution> </executions> </plugin> </plugins>
查看包的输出目录,果真有两个相似名称的包,一个是[name]-[version].jar,另一个是[name]-[version]-exec.jar。解压对比了这两个jar,发现名称含有-exec为可运行包,而另一个为普通包(不可通过 java -jar运行)。
标签:总结,maven,插件,plugin,boot,jar,Maven,source,源码 来源: https://www.cnblogs.com/dw3306/p/15901864.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。