您好,登錄后才能下訂單哦!
本文小編為大家詳細(xì)介紹“使用Maven打包時(shí)包含資源文件和源碼到j(luò)ar問題怎么解決”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“使用Maven打包時(shí)包含資源文件和源碼到j(luò)ar問題怎么解決”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識(shí)吧。
在使用Maven打包時(shí),我們發(fā)現(xiàn)最終打包之后jar中只有已經(jīng)編譯完成的代碼class,資源文件都沒了,如果有資源文件需要打包進(jìn)jar的話,直接打包jar無法正常工作。
其實(shí),在pom.xml中配置一下<build>節(jié)點(diǎn)即可實(shí)現(xiàn)把資源打包進(jìn)來的操作。
<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>節(jié)點(diǎn)中有兩個(gè)<resource>子節(jié)點(diǎn),分別配置了兩個(gè)不同的地方的內(nèi)容打包進(jìn)jar(一般資源文件放在項(xiàng)目resource文件夾和源代碼文件夾里面),其中每一個(gè)<resource>節(jié)點(diǎn)中的內(nèi)容
<directory>
為被打包的資源文件的路徑,${basedir}表示這個(gè)項(xiàng)目的根目錄。
<includes>
被包含的文件,里面的<include>**/*.*</include>表示包含其中的所有文件和文件夾。
<filtering>
是否過濾資源文件,默認(rèn)false。
<excludes>
要排除的文件,上面的配置內(nèi)容中排除了所有的java源代碼文件防止把源代碼也打包進(jìn)去了。
如果在別的地方有資源文件,可以自己再添加<resource>節(jié)點(diǎn),格式按照這個(gè)來。
需要說明的是一些jar外部包因?yàn)榘琷ava doc注釋,所以也需要將源代碼文件包含進(jìn)去。
這樣的話也很簡(jiǎn)單,把上面的第二個(gè)<resource>節(jié)點(diǎn)中的整個(gè)<excludes>節(jié)點(diǎn)去掉即可。(即不配置排除java源代碼文件)
由于jar包和項(xiàng)目分開打包,并且jar包打包后不會(huì)帶注釋,會(huì)對(duì)代碼調(diào)試增加難度,所以增加了jar包攜帶源碼的方式,解決方式如下
1.maven-source-plugin提供項(xiàng)目自動(dòng)將源碼打包并發(fā)布的功能
在需要發(fā)布源碼項(xiàng)目的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執(zhí)行
執(zhí)行 mvn install,maven會(huì)自動(dòng)將source install到repository 。
執(zhí)行 mvn deploy,maven會(huì)自動(dòng)將source deploy到remote-repository 。
執(zhí)行 mvn source:jar,單獨(dú)打包源碼。
讀到這里,這篇“使用Maven打包時(shí)包含資源文件和源碼到j(luò)ar問題怎么解決”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識(shí)點(diǎn)還需要大家自己動(dòng)手實(shí)踐使用過才能領(lǐng)會(huì),如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。