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