温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

使用Maven打包时包含资源文件和源码到jar问题怎么解决

发布时间:2022-08-18 09:36:12 来源:亿速云 阅读:229 作者:iii 栏目:开发技术

本文小编为大家详细介绍“使用Maven打包时包含资源文件和源码到jar问题怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“使用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,单独打包源码。

    读到这里,这篇“使用Maven打包时包含资源文件和源码到jar问题怎么解决”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注亿速云行业资讯频道。

    向AI问一下细节

    免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

    AI