gradle java项目中fat jar的替代方案
我今天就从格拉德尔开始。所以我尝试随机的东西。我有以下gradle java项目中fat jar的替代方案,java,gradle,Java,Gradle,我今天就从格拉德尔开始。所以我尝试随机的东西。我有以下build.gradle文件: apply plugin: 'java' repositories { mavenCentral() } dependencies { testImplementation('org.junit.jupiter:junit-jupiter-api:5.4.2') testRuntime('org.junit.jupiter:junit-jupiter-engine:5.4.2')
build.gradle
文件:
apply plugin: 'java'
repositories {
mavenCentral()
}
dependencies {
testImplementation('org.junit.jupiter:junit-jupiter-api:5.4.2')
testRuntime('org.junit.jupiter:junit-jupiter-engine:5.4.2')
compile 'com.googlecode.json-simple:json-simple:1.1.1'
}
test {
useJUnitPlatform()
}
jar {
manifest {
attributes(
'Main-Class': 'src.main.java.demo.Hello'
)
}
from {
configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it)}
}
}
我在某个地方读到,我在块中使用的方法将创建胖jar,这不是一个好的实践。由于我对这一点还不熟悉,我谦虚地想问一下这个问题的替代方案。是将类路径添加到清单还是其他内容
主要目的是捆绑将在运行时使用的第三方依赖项jar文件
谢谢大家! 您可以将所有依赖项与您自己的JAR和可能的外部资源一起放入一个ZIP文件,或者构建一个安装程序,或者(如果您正在构建一个web应用程序)构建一个WAR或EAR文件。Gradle在任何情况下都会为你保管舱单
(另外,胖罐子也没什么问题,它们现在很常见,而且很管用。)你能告诉我你写的东西是怎么做的吗。我的意思是build.gradleu中的任何更改使用Zip插件:@VIPULTYAGI如果您使用的是Java 9+,则可以使用jlink
创建自定义运行时映像。如果您使用的是Java 14,则可以使用jpackage
(当前正在酝酿中)创建本机可执行文件或安装程序。注意:这两种方法都可以创建特定于平台的自包含应用程序。由于您使用的是Gradle,您可以使用@VIPULTYAGI更轻松地使用上述工具。此外,为了更轻松地创建fat/uber罐子,您可以使用。