簡體   English   中英

創建可執行 Jar,其中包含所有依賴項作為打包的 jar

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM