Fat JAR

2024-01-30 11:31:38 浏览数 (2)

Fat JAR(也称为uber-JAR)是一个包含了其所有依赖项的可执行Java归档文件(JAR),这意味着它不仅仅包含了你自己编写的类和资源文件,还包括了所有你的应用程序运行时所需的第三方库。这样做的好处是简化了部署过程,因为你只需要部署一个文件即可。

要创建一个Fat JAR,你可以使用构建工具如Maven或Gradle,它们都提供了打包所有依赖项到一个JAR中的插件。

以下是一个使用Maven的简单Fat JAR入门案例:

  1. 创建一个新的Maven项目你可以手动创建一个新的Maven项目,或者使用IDE来生成,项目结构通常如下所示:
代码语言:javascript复制
my-fatjar-app
├── src
│   ├── main
│   │   ├── java
│   │   │   └── com
│   │   │       └── example
│   │   │           └── App.java
│   │   └── resources
│   └── test
│       ├── java
│       └── resources
└── pom.xml
  1. 编辑 pom.xml 文件在 pom.xml 文件中,你需要添加 maven-assembly-plugin 插件配置,它会指导Maven如何打包你的应用程序和它的依赖项到一个Fat JAR中。
代码语言:javascript复制
<project>
    <!-- 省略其他配置 -->

    <build>
        <plugins>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>3.3.0</version>
                <configuration>
                    <archive>
                        <manifest>
                            <mainClass>com.example.App</mainClass>
                        </manifest>
                    </archive>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                </configuration>
                <executions>
                    <execution>
                        <id>make-assembly</id> <!-- this is used for inheritance merges -->
                        <phase>package</phase> <!-- bind to the packaging phase -->
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

在这个配置中,<mainClass>标签指定了应用程序的入口点,即包含 main 方法的类。

  1. 编写你的应用程序代码在 src/main/java/com/example/App.java 文件中,写下你的应用程序入口点:
代码语言:javascript复制
package com.example;

public class App 
{
    public static void main( String[] args )
    {
        System.out.println( "Hello, World!" );
    }
}
  1. 构建你的应用程序在命令行中,导航到你的项目目录并运行以下命令来构建你的应用程序:
代码语言:javascript复制
mvn clean compile assembly:single

这会执行清理、编译和打包的步骤,生成的Fat JAR将会放在 target 目录下,文件名通常遵循 [artifactId]-[version]-jar-with-dependencies.jar 的格式。

  1. 运行你的Fat JAR你可以使用以下命令运行生成的Fat JAR:
代码语言:javascript复制
java -jar target/my-fatjar-app-1.0-SNAPSHOT-jar-with-dependencies.jar

这应该会在终端输出 “Hello, World!”。

以上就是一个简单的Fat JAR入门案例。如果你使用的是Gradle,步骤将有所不同,但基本概念是相同的:你需要配置你的构建脚本以包含所有依赖,并创建一个可执行的JAR文件。

0 人点赞