小编典典

什么是胖 JAR?

all

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


阅读 80

收藏
2022-08-21

共1个答案

小编典典

fat jar 是 jar,它包含来自所有库的类,您的项目依赖于这些库,当然还有当前项目的类。

在不同的构建系统中,胖 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>
2022-08-21