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

Maven項目打包為jar的四種方式

 更新時間:2024年10月25日 11:05:37   作者:水中加點糖  
本文主要介紹了Maven項目打包為jar的四種方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

這里收集整理下以往打包MAVEN項目為JAR包的各種方式

直接打包,不打包依賴包

直接打包,不打包依賴包,僅打包出項目中的代碼到JAR包中。在POM中添加如下plugin即可,隨后執(zhí)行maven install

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

將依賴JAR包輸出到lib目錄方式

將項目中的JAR包的依賴包輸出到指定的目錄下,修改outputDirectory配置,如下面的${project.build.directory}/lib。如想將打包好的JAR包可以通過命令直接運行,如java -jar xx.jar,還需要制定manifest配置的classpathPrefix與上面配置的相對應,如上面把依賴JAR包輸出到了lib,則這里的classpathPrefix也應指定為lib/;同時,并指定出程序的入口類,在配置mainClass節(jié)點中配好入口類的全類名。
這種打包方式對于JAVA項目是通用的,不管是不是springBoot的項目還是傳統(tǒng)的JAVA項目,都可行。

		<plugins>
			<!-- java編譯插件 -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<configuration>
					<source>1.7</source>
					<target>1.7</target>
					<encoding>UTF-8</encoding>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jar-plugin</artifactId>
				<configuration>
					<archive>
						<manifest>
							<addClasspath>true</addClasspath>
							<classpathPrefix>lib/</classpathPrefix>
							<mainClass>com.yourpakagename.mainClassName</mainClass>
						</manifest>
					</archive>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-dependency-plugin</artifactId>
				<executions>
					<execution>
						<id>copy</id>
						<phase>install</phase>
						<goals>
							<goal>copy-dependencies</goal>
						</goals>
						<configuration>
							<outputDirectory>${project.build.directory}/lib</outputDirectory>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>

有時為了方便,可以把classpath初在當前目錄上,默認的classpath會在jar包內,可以在Main方法配置后加上manifestEntries配置,指定classpath,如:

           <plugin>  
                <groupId>org.apache.maven.plugins</groupId>  
                <artifactId>maven-jar-plugin</artifactId>  
                <configuration>  
                    <classesDirectory>target/classes/</classesDirectory>  
                    <archive>  
                        <manifest>  
                            <!-- 主函數(shù)的入口 -->  
                            <mainClass>com.yourpakagename.mainClassName</mainClass>  
                            <!-- 打包時 MANIFEST.MF文件不記錄的時間戳版本 -->  
                            <useUniqueVersions>false</useUniqueVersions>  
                            <addClasspath>true</addClasspath>  
                            <classpathPrefix>lib/</classpathPrefix>  
                        </manifest>  
                        <manifestEntries>  
                            <Class-Path>.</Class-Path>  
                        </manifestEntries>  
                    </archive>  
                </configuration>  
            </plugin>  

將項目依賴包和項目打為一個包

這種方式打包會將項目中的依賴包和項目代碼都打為一個JAR包,其配置如下:

			<plugin>
            <groupId>org.apache.maven.plugins</groupId>  
            <artifactId>maven-assembly-plugin</artifactId>  
            <version>2.5.5</version>  
            <configuration>  
                <archive>  
                    <manifest>  
                        <mainClass>com.xxg.Main</mainClass>  
                    </manifest>  
                </archive>  
                <descriptorRefs>  
                    <descriptorRef>jar-with-dependencies</descriptorRef>  
                </descriptorRefs>  
            </configuration>  
        </plugin> 

但此種方式對于傳統(tǒng)的JAVA項目打包沒問題,如是打有spring框架的JAR包就不可以了??梢圆捎胢aven-shade-plugin的插件來打包,來實現(xiàn)spring框架的打包
有好幾位朋友說不能在使用此配置時無法將項目的依賴也打到一個JAR包中,通過追溯發(fā)現(xiàn)由于是執(zhí)行的package命令導致發(fā)。此處應執(zhí)行插件的assembly命令。如下圖:

assembly打包插件說明

springBoot項目打包

springBoot項目打包最常用且最簡單的方式是用springBoot的打包plugin

			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>

在POM中加入此插件,再點擊maven [install]或[repackge]就會把當前項目里所有依賴包和當前項目的源碼都打成一個JAR包,同時還會將沒有依賴包的JAR包也打出來,以.original的就是了

groovy項目打包

如果項目中包含groovy代碼,默認采用MAVEN打包時不會將groovy代碼進行打包,需要加入如下配置

            <plugin>
                <groupId>org.codehaus.gmavenplus</groupId>
                <artifactId>gmavenplus-plugin</artifactId>
                <version>1.2</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>addSources</goal>
                            <goal>addStubSources</goal>
                            <goal>compile</goal>
                            <goal>execute</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

到此這篇關于Maven項目打包為jar的四種方式的文章就介紹到這了,更多相關Maven打包為jar內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 淺談synchronized加鎖this和class的區(qū)別

    淺談synchronized加鎖this和class的區(qū)別

    synchronized 是 Java 語言中處理并發(fā)問題的一種常用手段,本文主要介紹了synchronized加鎖this和class的區(qū)別,具有一定的參考價值,感興趣的可以了解一下
    2021-11-11
  • java 獲取冒號后面的參數(shù)(正則)實現(xiàn)代碼

    java 獲取冒號后面的參數(shù)(正則)實現(xiàn)代碼

    這篇文章主要介紹了java 獲取冒號后面的參數(shù)(正則)實現(xiàn)代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • Java實現(xiàn)List去重的幾種方法總結

    Java實現(xiàn)List去重的幾種方法總結

    這篇文章主要為大家詳細介紹了Java中List去重的幾種常用方法總結,文中的示例代碼講解詳細,具有一定的學習和參考價值,需要的小伙伴可以了解一下
    2023-09-09
  • JDK1.8新特性Stream流式操作的具體使用

    JDK1.8新特性Stream流式操作的具體使用

    這篇文章主要介紹了JDK1.8新特性Stream流式操作的具體使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09
  • IDEA新UI如何移動類路徑工具欄到頂部

    IDEA新UI如何移動類路徑工具欄到頂部

    文章介紹了IDEA更新新UI后,類路徑工具欄放到底部的問題,并提供了解決方案,此外,還提到了如何關閉主菜單背景色的方法
    2025-01-01
  • SpringMVC基于注解的Controller詳解

    SpringMVC基于注解的Controller詳解

    這篇文章主要介紹了SpringMVC基于注解的Controller詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • Java中注解@JsonFormat與@DateTimeFormat的使用

    Java中注解@JsonFormat與@DateTimeFormat的使用

    從數(shù)據(jù)庫獲取時間傳到前端進行展示的時候,我們有時候可能無法得到一個滿意的時間格式的時間日期,本文主要介紹了Java中注解@JsonFormat與@DateTimeFormat的使用,文中通過示例代碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學習學習吧
    2023-08-08
  • 解決Maven項目報錯:failed?to?execute?goal?org.apache.maven.plugins:maven-compiler-plugin:3.13.0的問題

    解決Maven項目報錯:failed?to?execute?goal?org.apache.maven.plug

    這篇文章主要介紹了解決Maven項目報錯:failed?to?execute?goal?org.apache.maven.plugins:maven-compiler-plugin:3.13.0的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-05-05
  • 淺析Java類和數(shù)據(jù)結構中常用的方法

    淺析Java類和數(shù)據(jù)結構中常用的方法

    下面小編就為大家?guī)硪黄獪\析Java類和數(shù)據(jù)結構中常用的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-09-09
  • 詳解Java數(shù)據(jù)結構和算法(有序數(shù)組和二分查找)

    詳解Java數(shù)據(jù)結構和算法(有序數(shù)組和二分查找)

    本篇文章主要介紹了詳解Java數(shù)據(jù)結構和算法(有序數(shù)組和二分查找),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-09-09

最新評論

喜德县| 桦甸市| 紫金县| 太保市| 泰顺县| 孝感市| 华宁县| 万全县| 土默特左旗| 绥芬河市| 涡阳县| 建瓯市| 望谟县| 蓬溪县| 赫章县| 布拖县| 西林县| 公安县| 响水县| 黄浦区| 久治县| 昭通市| 济源市| 铁岭县| 两当县| 电白县| 绍兴市| 广河县| 安义县| 天峻县| 延津县| 莫力| 武宣县| 沁水县| 寿阳县| 色达县| 乌海市| 清新县| 囊谦县| 牡丹江市| 越西县|