使用Maven打包时包含资源文件和源码到jar的方法

Maven打包时包含资源文件和源码到jar

在使用Maven打包时,我们发现最终打包之后jar中只有已经编译完成的代码class,资源文件都没了,如果有资源文件需要打包进jar的话,直接打包jar无法正常工作。

其实,在pom.xml中配置一下节点即可实现把资源打包进来的操作。

中添加以下内容


    
        ${basedir}/src/main/resources
        
            **/*.*
        
        false
    
 
    
        ${basedir}/src/main/java
        
            **/*.*
        
        
            **/*.java
        
        false
    

可以看到,添加的节点中有两个子节点,分别配置了两个不同的地方的内容打包进jar(一般资源文件放在项目resource文件夹和源代码文件夹里面),其中每一个节点中的内容

意义如下

  • 为被打包的资源文件的路径,${basedir}表示这个项目的根目录。
  • 被包含的文件,里面的**/*.*表示包含其中的所有文件和文件夹。
  • 是否过滤资源文件,默认false。
  • 要排除的文件,上面的配置内容中排除了所有的java源代码文件防止把源代码也打包进去了。

如果在别的地方有资源文件,可以自己再添加节点,格式按照这个来。

需要说明的是一些jar外部包因为包含java doc注释,所以也需要将源代码文件包含进去。

这样的话也很简单,把上面的第二个节点中的整个节点去掉即可。(即不配置排除java源代码文件)

maven打包时包含源码的问题

由于jar包和项目分开打包,并且jar包打包后不会带注释,会对代码调试增加难度,所以增加了jar包携带源码的方式,解决方式如下

1.maven-source-plugin提供项目自动将源码打包并发布的功能

在需要发布源码项目的pom.xml文件中添加如下代码即可:


 
      
          
              org.apache.maven.plugins
              maven-source-plugin
              
                  
                      attach-sources
                      
                          jar
                      
                  
              
          
      
  

2.删除target文件夹

3.mvan执行

  • 执行 mvn install,maven会自动将source install到repository 。
  • 执行 mvn deploy,maven会自动将source deploy到remote-repository 。
  • 执行 mvn source:jar,单独打包源码。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。 

你可能感兴趣的:(使用Maven打包时包含资源文件和源码到jar的方法)