我听说人们说他们创建了一个胖 JAR 并部署它。它们实际上是什么意思?
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>