如何在我的gradle项目中创建单个可执行的jar?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在我的gradle项目中创建单个可执行的jar?相关的知识,希望对你有一定的参考价值。
我在应用中使用gradle 6.2版本和jdk 8,在buildlibs目录下编译了两个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文件,为什么在执行 "gradle clean build "的时候会创建-all.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 似乎正是你所需要的。它与Gradle的 application
插件 也.
另一答案
我能够建立一个单一的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项目中创建单个可执行的jar?的主要内容,如果未能解决你的问题,请参考以下文章
在 IntelliJ IDEA 中创建 Java Gradle 项目并构建 .jar 文件 - 如何?
如何像在 Eclipse 中一样在 IntelliJ 中创建可运行的 JAR
如何像在 Eclipse 中一样在 IntelliJ 中创建可运行的 JAR