一尘不染

什么是fat JAR?

java jar

我听说有人说他们创建了一个fat JAR并部署了它。它们实际上是什么意思?


阅读 2844

收藏
2020-03-05

共1个答案

一尘不染

fat jar是jar,其中包含项目所依赖的所有库中的类,当然还有当前项目的类。

在不同的构建系统中,fat jar的创建方式有所不同,例如,在Gradle中,可以使用(指令)创建胖子罐:

task fatJar(type: Jar) {
    manifest {
        attributes 'Main-Class': 'com.example.Main'
    }
    baseName = project.name + '-all'
    from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
    with jar
}

在Maven中,是通过以下方式完成的(在设置了常规jar之后):

<pluginRepositories>
   <pluginRepository>
        <id>onejar-maven-plugin.googlecode.com</id>
        <url>http://onejar-maven-plugin.googlecode.com/svn/mavenrepo</url>
   </pluginRepository>
<plugin>
    <groupid>org.dstovall</groupid>
    <artifactid>onejar-maven-plugin</artifactid>
    <version>1.4.4</version>
    <executions>
        <execution>
            <configuration>
                <onejarversion>0.97</onejarversion>
                <classifier>onejar</classifier>
            </configuration>
            <goals>
                <goal>one-jar</goal>
            </goals>
        </execution>
   </executions>
</plugin>
2020-03-05