溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用Maven打包時包含資源文件和源碼到jar問題怎么解決

發布時間:2022-08-18 09:36:12 來源:億速云 閱讀:294 作者: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

    亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女