日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java工程打成jar包 - 使用maven assembly插件打包及手动打包

發布時間:2023/12/20 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java工程打成jar包 - 使用maven assembly插件打包及手动打包 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在java工程打包的過程中遇到過不少問題,現在總結一下。一種是典型的maven工程打包,依賴的jar包全都在pom.xml中指定,這種方式打包很方便;另一種是依賴了本機jar包(不能通過pom.xml指定),我目前實踐結果是只能手動進行打包。

1、依賴的jar包全由pom文件指定

使用maven的assembly插件進行打包,需要在pom文件中進行插件配置?;九渲萌缦?#xff0c;在終端中執行mvn package,即可在target目錄生成名字為{artifactId}-jar-with-dependencies.jar?的jar文件,該jar文件中包含了所有依賴的jar包(解壓后的)。

該插件還有很多其他的高級設置,每每總是搞錯,后面等自己摸透了,會慢慢增加一些高級設置的說明。

<plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-assembly-plugin</artifactId><version>2.5</version><configuration><descriptorRefs><descriptorRef>jar-with-dependencies</descriptorRef></descriptorRefs><archive><manifest><mainClass>com.sym.storm.WordCountTopology</mainClass></manifest></archive></configuration><executions><execution><id>make-assembly</id><phase>package</phase><goals><goal>single</goal></goals></execution></executions></plugin></plugins>

?

最終生成的jar包中的依賴的jar包都是解壓后的,這是由jar-with-dependencies的默認設置決定的。若需要保持依賴的jar包不解壓,則需要進行一下設置:

  • 新建src/main/assembly目錄,并在其中新建src.xml文件,并在該文件中寫入如下內容:
<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd"> <id>jar-with-dependencies</id> <formats> <format>jar</format> </formats> <includeBaseDirectory>false</includeBaseDirectory> <dependencySets> <dependencySet> <unpack>false</unpack> <scope>runtime</scope> </dependencySet> </dependencySets> <fileSets> <fileSet> <directory>${project.build.outputDirectory}</directory> </fileSet> </fileSets> </assembly>

默認的unpack設置是true(即解壓),只需要修改為false即可。

  • 然后需要將之前pom文件中的descriptorRef替換為如下descriptor設置。再執行mvn package命令。解壓生成的jar包,可看到依賴的jar包都是未解壓的。
  • <descriptors><descriptor>jar-with-dependencies</descriptorRef> </descriptors>

?

2、依賴本地jar包(非pom指定)

之前在網上搜了很多的教程,教程里也有很多是使用assembly插件來,但實踐之后都未果,后來只能用最原始的手動導jar包的方式來實現。

  • 用編輯器導成jar包(eclipse和intellij不同)。Main方法根據實際需求來指定。
  • 修改MANIFEST.MF。MANIFEST.MF文件描述了jar包的相關信息,包括jar包的版本、創建人和類搜索路徑等。如果是可執行jar包,會包含Main-Class屬性,表明Main方法入口。Class-Path指定依賴的jar包,當前路徑是jar包所在目錄,若要引用當前目錄下一個子目錄中的jar包,使用以下格式:子目錄/jar包名稱,多個jar包之間用空格分隔,在任何平臺上路徑分割符都是'/'。

具體操作如下:在導出的jar包上右鍵,選擇用WinRAR打開,進入META_INF目錄,打開MANIFEST.MF文件,添加依賴的jar包的名字,名字之前用空格分隔,如

Class-Path: lib/***1.jar lib/***2.jar

?

轉載于:https://www.cnblogs.com/yaminLearn/p/6273972.html

總結

以上是生活随笔為你收集整理的java工程打成jar包 - 使用maven assembly插件打包及手动打包的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。