欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用Maven打包時(shí)包含資源文件和源碼到j(luò)ar的方法

 更新時(shí)間:2022年08月17日 16:54:58   作者:「已注銷」  
這篇文章主要介紹了使用Maven打包時(shí)包含資源文件和源碼到j(luò)ar的方法,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Maven打包時(shí)包含資源文件和源碼到j(luò)ar

在使用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)來的操作。

在<build>中添加以下內(nèi)容

<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)去。

這樣的話也很簡單,把上面的第二個(gè)<resource>節(jié)點(diǎn)中的整個(gè)<excludes>節(jié)點(diǎn)去掉即可。(即不配置排除java源代碼文件)

maven打包時(shí)包含源碼的問題

由于jar包和項(xiàng)目分開打包,并且jar包打包后不會帶注釋,會對代碼調(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會自動(dòng)將source install到repository 。
  • 執(zhí)行 mvn deploy,maven會自動(dòng)將source deploy到remote-repository 。
  • 執(zhí)行 mvn source:jar,單獨(dú)打包源碼。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。 

相關(guān)文章

  • java讀取文件內(nèi)容,解析Json格式數(shù)據(jù)方式

    java讀取文件內(nèi)容,解析Json格式數(shù)據(jù)方式

    這篇文章主要介紹了java讀取文件內(nèi)容,解析Json格式數(shù)據(jù)方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Java線程狀態(tài)轉(zhuǎn)換關(guān)系實(shí)例解析

    Java線程狀態(tài)轉(zhuǎn)換關(guān)系實(shí)例解析

    這篇文章主要介紹了Java線程狀態(tài)轉(zhuǎn)換關(guān)系實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • java jni調(diào)用c函數(shù)實(shí)例分享(java調(diào)用c函數(shù))

    java jni調(diào)用c函數(shù)實(shí)例分享(java調(diào)用c函數(shù))

    Java代碼中調(diào)用C/C++代碼,當(dāng)然是使用JNI,JNI是Java native interface的簡寫,可以譯作Java原生接口,下面看實(shí)例吧
    2013-12-12
  • Java.lang.Long.parseLong()方法詳解及示例

    Java.lang.Long.parseLong()方法詳解及示例

    這個(gè)java.lang.Long.parseLong(String s) 方法解析字符串參數(shù)s作為有符號十進(jìn)制長,下面這篇文章主要給大家介紹了關(guān)于Java.lang.Long.parseLong()方法詳解及示例的相關(guān)資料,需要的朋友可以參考下
    2023-01-01
  • jdbc和mybatis的流式查詢使用方法

    jdbc和mybatis的流式查詢使用方法

    有些時(shí)候我們所需要查詢的數(shù)據(jù)量比較大,但是jvm內(nèi)存又是有限制的,數(shù)據(jù)量過大會導(dǎo)致內(nèi)存溢出。這個(gè)時(shí)候就可以使用流式查詢,本文就主要介紹了jdbc和mybatis的流式查詢,感興趣的可以了解一下
    2021-11-11
  • Java數(shù)據(jù)結(jié)構(gòu)之隊(duì)列與OJ題

    Java數(shù)據(jù)結(jié)構(gòu)之隊(duì)列與OJ題

    這篇文章主要介紹了Java數(shù)據(jù)結(jié)構(gòu)之隊(duì)列與OJ題,本文章先是對隊(duì)列進(jìn)行介紹,后又介紹了四道OJ相關(guān)的題目,來使其深入理解,需要的朋友可以參考下
    2023-01-01
  • Java實(shí)現(xiàn)定時(shí)任務(wù)的方法詳解

    Java實(shí)現(xiàn)定時(shí)任務(wù)的方法詳解

    大家都用過鬧鐘,鬧鐘可以說是一種定時(shí)任務(wù)。那么,在?Java?中,如何實(shí)現(xiàn)這樣的功能呢?即如何實(shí)現(xiàn)定時(shí)任務(wù)呢?本文就來詳細(xì)和大家聊聊
    2022-10-10
  • springboot使用redis的詳細(xì)步驟

    springboot使用redis的詳細(xì)步驟

    SpringBoot對常用的數(shù)據(jù)庫支持外,對NoSQL?數(shù)據(jù)庫也進(jìn)行了封裝自動(dòng)化,下面這篇文章主要給大家介紹了關(guān)于springboot使用redis的詳細(xì)步驟,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • 如何利用Java?AWT?創(chuàng)建一個(gè)簡易計(jì)算器

    如何利用Java?AWT?創(chuàng)建一個(gè)簡易計(jì)算器

    這篇文章主要介紹了如何利用Java?AWT?創(chuàng)建一個(gè)簡易計(jì)算器,AWT?是一個(gè)有助于構(gòu)建?GUI?的?API?基于?java?應(yīng)用程序,下面關(guān)于其相關(guān)資料實(shí)現(xiàn)計(jì)算器的內(nèi)容詳細(xì),需要的朋友可以參考一下
    2022-03-03
  • Java編程線程間通信與信號量代碼示例

    Java編程線程間通信與信號量代碼示例

    這篇文章主要介紹了Java編程線程間通信與信號量代碼示例,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12

最新評論