java打包时打入本地依赖包
生活随笔
收集整理的這篇文章主要介紹了
java打包时打入本地依赖包
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
java打包時打入本地依賴包
- 方案1:將所有依賴寫入jar包
- 方案2:打包時在MANIFEST.MF文件中寫入jar包依賴
在某些情況下,需要進行本地依賴包引入.但如果配置不當很容易出現NoClassDefFoundError的報錯.
目前正好進行sdk開發,因此整理打包時加入本地依賴包的方案與過程.
方案1:將所有依賴寫入jar包
在某些情況下(如內網環境),第三方依賴包并不一定能夠使用maven進行下載(如果沒有Nexus服務器),且需要生成一個可單獨使用的jar包(如sdk開發)
因此可以將所有的依賴都寫入jar包中
下邊是步驟:
(1)pom文件中導入本地包
<dependency><!-- groupId artifactId version內容隨意寫 -->><groupId>livillya.von.einzbern</groupId><artifactId>livillya.von.einzbern</artifactId><version>1.0.0</version><scope>system</scope> <systemPath>${project.basedir}/src/main/resources/lib/你的jar包名.jar</systemPath></dependency>此時,如果是單純跑項目,已經是可以使用
(2)編寫pom.xml的build參數
如果不進行 executions配置,則需要自己執行 mvn package assembly:single
以下為package.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>package</id><formats><format>jar</format><!-- 如果寫多個format,可打出多種包<format>zip</format> <format>tar.bz2</format>--></formats><includeBaseDirectory>false</includeBaseDirectory><dependencySets><dependencySet><outputDirectory>/</outputDirectory><useProjectArtifact>true</useProjectArtifact><unpack>true</unpack><scope>runtime</scope></dependencySet><dependencySet><outputDirectory>/</outputDirectory><useProjectArtifact>true</useProjectArtifact><unpack>true</unpack><scope>system</scope></dependencySet></dependencySets> </assembly>此時,進行打包操作后,可多得到一個 你的項目打包名-package.jar 的jar包,該包包含所有依賴文件
方案2:打包時在MANIFEST.MF文件中寫入jar包依賴
大部分項目并不需要把jar文件單獨使用,可以打成一個jar和lib分開的包
在MANIFEST.MF的Class-Path中加入jar包的路徑即可
以下為我常用的build配置
總結
以上是生活随笔為你收集整理的java打包时打入本地依赖包的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何有效阅读英文数据手册?
- 下一篇: java正则表达式结尾_java 正则表