使用Maven打包时包含资源文件和源码到jar的方法
Maven打包时包含资源文件和源码到jar
在使用Maven打包时,我们发现最终打包之后jar中只有已经编译完成的代码class,资源文件都没了,如果有资源文件需要打包进jar的话,直接打包jar无法正常工作。
其实,在pom.xml中配置一下<build>节点即可实现把资源打包进来的操作。
在<build>中添加以下内容
<resources>
<resource>
<directory>${basedir}/src/main/resources</directory>
<includes>
<include>**/*.*</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<directory>${basedir}/src/main/java</directory>
<includes>
<include>**/*.*</include>
</includes>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
<filtering>false</filtering>
</resource>
</resources>可以看到,添加的<resources>节点中有两个<resource>子节点,分别配置了两个不同的地方的内容打包进jar(一般资源文件放在项目resource文件夹和源代码文件夹里面),其中每一个<resource>节点中的内容
意义如下
<directory>为被打包的资源文件的路径,${basedir}表示这个项目的根目录。<includes>被包含的文件,里面的<include>**/*.*</include>表示包含其中的所有文件和文件夹。<filtering>是否过滤资源文件,默认false。<excludes>要排除的文件,上面的配置内容中排除了所有的java源代码文件防止把源代码也打包进去了。
如果在别的地方有资源文件,可以自己再添加<resource>节点,格式按照这个来。
需要说明的是一些jar外部包因为包含java doc注释,所以也需要将源代码文件包含进去。
这样的话也很简单,把上面的第二个<resource>节点中的整个<excludes>节点去掉即可。(即不配置排除java源代码文件)
maven打包时包含源码的问题
由于jar包和项目分开打包,并且jar包打包后不会带注释,会对代码调试增加难度,所以增加了jar包携带源码的方式,解决方式如下
1.maven-source-plugin提供项目自动将源码打包并发布的功能
在需要发布源码项目的pom.xml文件中添加如下代码即可:
<!-- Source attach plugin --> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <executions> <execution> <id>attach-sources</id> <goals> <goal>jar</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
2.删除target文件夹
3.mvan执行
- 执行 mvn install,maven会自动将source install到repository 。
- 执行 mvn deploy,maven会自动将source deploy到remote-repository 。
- 执行 mvn source:jar,单独打包源码。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
解析Java中的Timer和TimerTask在Android中的用法和实例
本篇文章主要介绍了解析Java中的Timer和TimerTask在Android中的用法,主要介绍了Timer和TimerTask的用法,有需要的可以了解一下。2016-11-11
使用SpringBoot+EasyExcel+Vue实现excel表格的导入和导出详解
这篇文章主要介绍了使用SpringBoot+VUE+EasyExcel 整合导入导出数据的过程详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2022-08-08
Java,JSP,Servlet获取当前工程路径(绝对路径)问题解析
这篇文章主要介绍了Java,JSP,Servlet获取当前工程路径(绝对路径)问题解析,需要的朋友可以参考下。2017-09-09
SpringBoot使用WebSocket实现前后端交互的操作方法
springboot使用websocket有两种方式,一种是实现简单的websocket,另外一种是实现STOMP协议,本篇讲述如何使用springboot实现简单的websocket,需要的朋友可以参考下2022-04-04
使用JDBC4.0操作XML类型的字段(保存获取xml数据)的方法
jdbc4.0最重要的特征是支持xml数据类型,接下来通过本文重点给大家介绍如何使用jdbc4.0操作xml类型的字段,对jdbc4.0 xml相关知识感兴趣的朋友一起看下吧2016-08-08


最新评论