![](/img/trans.png)
[英]Maven plugin to create executable jar with dependencies not unpacked (jar with jars)
[英]Create Executable Jar that includes all the dependencies as packaged jars
我試圖了解如何將所有依賴項作為打包的 jar 包含在可執行 jar 文件中(即在 jar 中包含 jars),但我失敗得很慘。
有人可以指出我正確的方向嗎?
請注意,我不希望生成的 fat jar 將 jars 打包在其中,而不是使用 maven-assembly-plugin 獲得的未打包的等價物
你想要創建的東西叫做fat jar 。 您可以通過執行后續步驟來生成它。
在您的 POM 文件中添加構建部分,如下所示:
<build>
<finalName>example</finalName>
<plugins>
<!-- Set a compiler level -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>${jdk.version}</source>
<target>${jdk.version}</target>
</configuration>
</plugin>
<!-- Maven Assembly Plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4.1</version>
<configuration>
<!-- get all project dependencies -->
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<!-- MainClass in mainfest make a executable jar -->
<archive>
<manifest>
<mainClass>com.example.Main</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<!-- bind to the packaging phase -->
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
上面的“Maven Assembly Plugin”綁定到Maven的打包階段,生成最終的Jar,只需使用以下方式打包:
mvn package
將在目標文件夾中創建兩個 jar 文件。
example.jar – 只有你的項目類
example-jar-with-dependencies.jar – 單個 jar 中的項目和依賴類。
你現在可以檢查你的 fat jar 的內容:
jar tf target/example-jar-with-dependencies.jar
在 pom.xml 中包含依賴項。 使用mvn clean install
構建項目,結果將具有這些依賴項。 然后您可以使用運行罐子
java -cp <jar Filename> <main class name>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.