本文小編為大家詳細介紹“使用Maven打包時包含資源文件和源碼到jar問題怎么解決”,內容詳細,步驟清晰,細節處理妥當,希望這篇“使用Maven打包時包含資源文件和源碼到jar問題怎么解決”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
在使用Maven打包時,我們發現最終打包之后jar中只有已經編譯完成的代碼class,資源文件都沒了,如果有資源文件需要打包進jar的話,直接打包jar無法正常工作。
其實,在pom.xml中配置一下<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源代碼文件)
由于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問題怎么解決”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。