如何在我的 gradle 项目中创建单个可执行 jar
How can I create single executable jar in my gradle project
我在我的应用程序中使用 gradle 6.2 版本和 jdk 8,它在 build/libs/ 目录下构建 2 个 jar 文件。如何在我的应用程序中创建单个可执行 jar?
我的build.gradle,
plugins {
id 'com.google.cloud.tools.jib' version '2.2.0'
id 'application'
id 'java'
}
repositories {
mavenLocal()
mavenCentral()
jcenter()
}
jib.to.image = 'gcr.io/' + project.property('gcpProjectId') + '/my-application'
jib.container.creationTime = 'USE_CURRENT_TIMESTAMP'
mainClassName = "com.foo.Myapplication"
jar {
manifest {
attributes "Main-Class": "$mainClassName"
}
from {
configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
}
}
创建的 Jar 文件:
ls -ltr build/libs/
total 31184
-rw-r--r-- 1 user 15986229 Jun 9 20:22 my-application-1.0.0.jar
-rw-r--r-- 1 user 15942345 Jun 9 20:22 my-application-1.0.0-all.jar
为什么它在执行 "gradle clean build" 时创建 -all.jar ?
这里出了什么问题?
请提供您对此的看法。
Gradle Shadow Plugin seems to be exactly what you need. It has interop with Gradle's application
plugin as well.
我可以构建一个 jar,在修改 build.gradle 后喜欢以下内容,
build.gradle,
plugins {
id 'com.google.cloud.tools.jib' version '2.2.0'
}
repositories {
mavenLocal()
mavenCentral()
jcenter()
}
jib.to.image = 'gcr.io/' + project.property('gcpProjectId') + '/my-application'
jib.container.creationTime = 'USE_CURRENT_TIMESTAMP'
jar {
manifest {
attributes 'Main-Class': 'com.foo.Myapplication'
}
from {
configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
}
}
我在我的应用程序中使用 gradle 6.2 版本和 jdk 8,它在 build/libs/ 目录下构建 2 个 jar 文件。如何在我的应用程序中创建单个可执行 jar?
我的build.gradle,
plugins {
id 'com.google.cloud.tools.jib' version '2.2.0'
id 'application'
id 'java'
}
repositories {
mavenLocal()
mavenCentral()
jcenter()
}
jib.to.image = 'gcr.io/' + project.property('gcpProjectId') + '/my-application'
jib.container.creationTime = 'USE_CURRENT_TIMESTAMP'
mainClassName = "com.foo.Myapplication"
jar {
manifest {
attributes "Main-Class": "$mainClassName"
}
from {
configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
}
}
创建的 Jar 文件:
ls -ltr build/libs/
total 31184
-rw-r--r-- 1 user 15986229 Jun 9 20:22 my-application-1.0.0.jar
-rw-r--r-- 1 user 15942345 Jun 9 20:22 my-application-1.0.0-all.jar
为什么它在执行 "gradle clean build" 时创建 -all.jar ? 这里出了什么问题? 请提供您对此的看法。
Gradle Shadow Plugin seems to be exactly what you need. It has interop with Gradle's application
plugin as well.
我可以构建一个 jar,在修改 build.gradle 后喜欢以下内容,
build.gradle,
plugins {
id 'com.google.cloud.tools.jib' version '2.2.0'
}
repositories {
mavenLocal()
mavenCentral()
jcenter()
}
jib.to.image = 'gcr.io/' + project.property('gcpProjectId') + '/my-application'
jib.container.creationTime = 'USE_CURRENT_TIMESTAMP'
jar {
manifest {
attributes 'Main-Class': 'com.foo.Myapplication'
}
from {
configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
}
}