最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

maven打包插件的使用(maven-compiler-plugin、maven-dependency-plugin、maven-jar-plugin、maven-resources-plugin)

 更新時間:2023年06月15日 11:38:20   作者:奔跑吧人生  
本文主要介紹了maven打包插件的使用(maven-compiler-plugin、maven-dependency-plugin、maven-jar-plugin、maven-resources-plugin),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

最近開發(fā)的產品,我們是有四五個maven模塊,開發(fā)階段一直是在eclipse中運行的,然后快發(fā)版的時候,需要把這些項目打成jar包,通過命令去啟動,那首先就得把這些模塊項目打包,或者拷貝一些資源文件等等。

1.maven打包

首先在pom文件中加上build屬性,和dependencies是同級的:

<build>
    <!--打包出來的文件名,可以不填寫,有默認值-->
    <finalName>Test</finalName>
    <plugins>
        <!--這塊寫插件-->
    </plugins>
<build>

2.maven-compiler-plugin

編譯插件,可能會用到的一些配置如下:

<plugin>  
       <groupId>org.apache.maven.plugins</groupId>  
       <artifactId>maven-compiler-plugin</artifactId>  
       <version>3.1</version>  
       <configuration>  
            <source>1.8</source>  
            <target>1.8</target>  
        </configuration>  
</plugin>

3.maven-jar-plugin

打jar包的插件,把整個maven工程打成jar包,可能會用到的一些配置如下:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <version>2.4</version>
    <configuration>
        <archive>
            <!-- 生成的jar中,包含pom.xml和pom.properties這兩個文件 -->
            <addMavenDescriptor>true</addMavenDescriptor>
            <!-- 生成MANIFEST.MF的設置 -->
            <manifest>
                <!--這個屬性特別關鍵,如果沒有這個屬性,有時候我們引用的包maven庫
                下面可能會有多個包,并且只有一個是正確的,其余的可能是帶時間戳的,
                此時會在classpath下面把那個帶時間戳的給添加上去,然后我們
                在依賴打包的時候,打的是正確的,所以兩頭會對不上,報錯。-->
                <useUniqueVersions>false</useUniqueVersions>
                <!-- 為依賴包添加路徑, 這些路徑會寫在MANIFEST文件的Class-Path下 -->    
                <addClasspath>true</addClasspath>
                <!-- 這個jar所依賴的jar包添加classPath的時候的前綴,如果這個
                jar本身和依賴包在同一級目錄,則不需要添加-->
                <classpathPrefix>lib/</classpathPrefix>
                <!-- jar啟動入口類-->
                <mainClass>com.test.Test</mainClass>
            </manifest>
            <manifestEntries>
                <!-- 在Class-Path下添加配置文件的路徑 -->
                <Class-Path>../config/</Class-Path>
                <!-- 假如這個項目可能要引入一些外部資源,但是你打包的時候并不想把
                這些資源文件打進包里面,這個時候你必須在這邊額外指定一些這些資源
                文件的路徑,這個位置指定的話,要根據你預期的這些位置去設置,我這邊
                所有jar都在lib下,資源文件都在config下,lib和config是同級的 -->
                <!-- 同時還需要注意另外一個問題,假如你的pom文件里面配置了
                <scope>system</scope>,就是你依賴是你本地的資源,這個時候使用
                這個插件,classPath里面是不會添加,所以你得手動把這個依賴添加進
                這個地方,用空格隔開就行-->
            </manifestEntries>
        </archive>
        <!-- jar包的位置-->
        <outputDirectory>${project.build.directory}/lib</outputDirectory>
        <includes>
            <!-- 打jar包時,只打包class文件 -->
            <!-- 有時候可能需要一些其他文件,這邊可以配置,包括剔除的文件等等-->
            <include>**/*.class</include>
        </includes>
    </configuration>
</plugin>

4.maven-dependency-plugin

用來拷貝項目所有依賴的插件,可能會用到的一些配置如下:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <executions>
        <execution>
            <id>copy-dependencies</id>
            <phase>package</phase>
            <goals>
                <goal>copy-dependencies</goal>
            </goals>
            <configuration>
                <!-- 拷貝項目依賴包到lib/目錄下 -->
                <outputDirectory>${project.build.directory}/lib</outputDirectory>
                <!-- 間接依賴也拷貝 -->
                <excludeTransitive>false</excludeTransitive>
                <!-- 帶上版本號 -->
                <stripVersion>false</stripVersion>
            </configuration>
        </execution>
    </executions>
</plugin>

5.maven-resources-plugin

用來拷貝項目中的一些資源文件,可能會用到的一些配置如下:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-resources-plugin</artifactId>
    <version>2.6</version>
    <executions>
        <!-- 一個execution就是一個目標輸入位置,如果想把各種資源拆開放的話,就
        可以創(chuàng)建多個execution,一個資源文件可以被拷貝多份 -->
        <execution>
            <id>copy-resources</id>
            <phase>package</phase>
            <goals>
                <goal>copy-resources</goal>
            </goals>
            <configuration>
                <encoding>UTF-8</encoding>
                <!-- 資源文件的輸出目錄 -->
                <outputDirectory>{project.build.directory}/config</outputDirectory>
                <resources>
                    <!-- 資源文件的原始目錄,有多個的話就多配幾個 -->
                    <resource>
                        <!-- 原始目錄 -->
                        <directory>src/main/resources</directory>
                        <!-- 是否使用過濾器,如果是的話,需要配置一下才行
                        這個后續(xù)再研究,這邊沒有使用到 -->
                        <filtering>true</filtering>
                        <!-- 包含哪些文件以及去除調哪些文件等等 -->
                        <includes>
                            <include>**/*.*</include>
                        </includes>
                        <excludes>
                            <exclude>**/*.json</exclude>
                        </excludes>
                    </resource>
                </resources>
            </configuration>
        </execution>
    </executions>
</plugin>

關于資源文件拷貝,注意一個小問題,平時用eclipse開發(fā)的話,默認的classPath其實就是target/classes,默認情況下,eclipse也會把一些在src/main/resources下的資源文件拷貝到這個目錄下,但是如果你配了上述資源拷貝插件,只會按你配置的來,我配置上述插件是為了在非eclipse環(huán)境下運行的,但是這樣影響到了eclipse的運行,所以呢,需要額外再配置一個execution,拷貝到classes目錄下即可

注意:上面說的這個,在IDEA中不會有這個問題,因為IDEA每次啟動都會自己build一下,會完全一部分事情,保證項目能夠運行。

以上就是這4個插件,后續(xù)如果還有其余插件或者這些插件中一些新內容,會及時添加。關于一些文件的輸出目錄,一定要根據自己的需求來,先明白自己想要什么,再去配置,或者兩者互相迭代吧。

maven-war-plugin,war包打包插件

一般也不用指定,默認都會用的。只不過在針對一些快照版本的依賴包,打出來的文件,WEB-INFO/lib下面的jar包,都會帶一些時間戳,經過下面的配置,打出來的就不帶時間戳了。

<plugin>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.6</version>
    <configuration>
        <outputFileNameMapping>@{artifactId}@-@{baseVersion}@.@{extension}@</outputFileNameMapping>
    </configuration>
</plugin>

到此這篇關于maven打包插件的使用(maven-compiler-plugin、maven-dependency-plugin、maven-jar-plugin、maven-resources-plugin)的文章就介紹到這了,更多相關maven打包插件內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • mybatis-plus如何使用mapper的xml

    mybatis-plus如何使用mapper的xml

    這篇文章主要介紹了mybatis-plus如何使用mapper的xml問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • java 中繼承和多態(tài)詳細介紹

    java 中繼承和多態(tài)詳細介紹

    這篇文章主要介紹了java 中繼承和多態(tài)詳細介紹的相關資料,需要的朋友可以參考下
    2017-05-05
  • Java中ClassNotFoundException的類加載問題排查與修復方法

    Java中ClassNotFoundException的類加載問題排查與修復方法

    在Java開發(fā)中,java.lang.ClassNotFoundException是常見的運行時異常,通常表示JVM在嘗試加載某個類時未能找到其定義,本文結合實戰(zhàn)經驗,系統(tǒng)性分析ClassNotFoundException的排查與修復方法,并提供豐富的代碼示例和表格分析,需要的朋友可以參考下
    2025-06-06
  • Java?for循環(huán)標簽跳轉到指定位置的示例詳解

    Java?for循環(huán)標簽跳轉到指定位置的示例詳解

    這篇文章主要介紹了Java?for循環(huán)標簽跳轉到指定位置,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-05-05
  • Java concurrency線程池之線程池原理(一)_動力節(jié)點Java學院整理

    Java concurrency線程池之線程池原理(一)_動力節(jié)點Java學院整理

    這篇文章主要為大家詳細介紹了Java concurrency線程池之線程池原理,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • 深入剖析Java中的synchronized關鍵字

    深入剖析Java中的synchronized關鍵字

    在 Java 程序中,我們可以利用 synchronized 關鍵字來對程序進行加鎖,它既可以用來聲明一個 synchronized 代碼塊,也可以直接標記靜態(tài)方法或者實例方法,本文就帶大家深入了解Java中的synchronized關鍵字,感興趣的同學可以參考閱讀
    2023-06-06
  • SpringBoot調用第三方接口的幾種方式小結

    SpringBoot調用第三方接口的幾種方式小結

    在項目中調用第三方接口時,確實需要根據項目的技術棧、架構規(guī)范以及具體的業(yè)務需求來選擇最適合的調用方式,下面我們就介紹幾種調用第三方接口的實現(xiàn)方式以及代碼示例,需要的朋友可以參考下
    2024-07-07
  • JAVA 開發(fā)之用靜態(tài)方法返回類名的實例詳解

    JAVA 開發(fā)之用靜態(tài)方法返回類名的實例詳解

    這篇文章主要介紹了JAVA 開發(fā)之用靜態(tài)方法返回類名的實例詳解的相關資料,這里主要說明使用異常來得到類名,希望能幫助到大家,需要的朋友可以參考下
    2017-08-08
  • 百度翻譯API使用詳細教程(前端vue+后端springboot)

    百度翻譯API使用詳細教程(前端vue+后端springboot)

    這篇文章主要給大家介紹了關于百度翻譯API使用的相關資料,百度翻譯API是百度面向開發(fā)者推出的免費翻譯服務開放接口,任何第三方應用或網站都可以通過使用百度翻譯API為用戶提供實時優(yōu)質的多語言翻譯服務,需要的朋友可以參考下
    2024-02-02
  • 基于SSM框架+Javamail發(fā)送郵件的代碼實例

    基于SSM框架+Javamail發(fā)送郵件的代碼實例

    本篇文章主要介紹了基于SSM框架+Javamail發(fā)送郵件的代碼實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2016-12-12

最新評論

理塘县| 理塘县| 新闻| 临湘市| 大足县| 伊吾县| 棋牌| 凭祥市| 丰都县| 香港 | 大理市| 林周县| 娱乐| 兰溪市| 望谟县| 通河县| 砀山县| 卫辉市| 禹城市| 朝阳县| 龙江县| 诏安县| 忻州市| 棋牌| 宜宾市| 新竹县| 永年县| 油尖旺区| 汽车| 金阳县| 新兴县| 永年县| 达孜县| 正蓝旗| 潍坊市| 柏乡县| 东至县| 沙田区| 金乡县| 北碚区| 印江|