Gradle4.4(fatJar)是否有类似shadow的插件
我正试着做一个肥罐子,然后移动它。影子插件失败了,我说它找不到插件。我正在尝试创建一个fatjar 我有这个可以很好地移动文件,但它包括每个jar文件,我只需要一个大的文件,然后移动它:Gradle4.4(fatJar)是否有类似shadow的插件,gradle,Gradle,我正试着做一个肥罐子,然后移动它。影子插件失败了,我说它找不到插件。我正在尝试创建一个fatjar 我有这个可以很好地移动文件,但它包括每个jar文件,我只需要一个大的文件,然后移动它: task copyJarIntoDockerDirectory(type: Copy) { dependsOn jar from configurations.runtime from jar into '../docker/ekomi-import' rename '
task copyJarIntoDockerDirectory(type: Copy) {
dependsOn jar
from configurations.runtime
from jar
into '../docker/ekomi-import'
rename '(.*)-[0-9]+\\..*.jar', '$1.jar'
doFirst { println 'before copy' }
doLast { println 'after copy' }
}
您可以将
com.github.jengelman.gradle.plugins:shadow:2.0.2
plugin与gradle 3.0+一起使用。您的最小build.gradle
文件可能如下所示:
buildscript {
repositories {
jcenter()
maven {
url "https://plugins.gradle.org/m2/"
}
}
dependencies {
classpath "com.github.jengelman.gradle.plugins:shadow:2.0.2"
}
}
apply plugin: "com.github.johnrengelman.shadow"
task copyJarIntoDockerDirectory(type: Copy) {
dependsOn shadowJar
from 'build/libs/'
into 'docker/ekomi-import'
}
在我的例子中,最后一个JAR被称为products-service-all.JAR
。当我跑步时:
gradle clean copyJarIntoDockerDirectory && tree docker
我在bash控制台中获得以下输出:
products-service [master●●●] % gradle clean copyJarIntoDockerDirectory && tree docker
BUILD SUCCESSFUL in 3s
5 actionable tasks: 5 executed
docker
└── ekomi-import
└── products-service-all.jar
1 directory, 1 file
希望能有所帮助。我有gradle 4.4,当我尝试你的建议时,它给了我这个错误,'在org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler类型的对象上找不到参数[io.ratpack:ratpack gradle:1.5.1]的方法classpath()。'@Drew1208抱歉,那是过时的,我在ratpack应用程序中测试它。它不应该出现在示例代码中。更新的代码示例。请现在检查。我已经用Gradle 4.4.1对其进行了测试,这可能是解决方案,但现在失败了,因为这是一个多模块项目。现在,第一个模块以gradle clean build启动。我需要在几个模块中使用上述解决方案。@Drew1208请将此信息添加到您的问题中,这在这种情况下至关重要。也许其他人也遇到过类似的问题,并且知道如何去做。我错了,它是我创造的,我让它工作了。然而,它只是没有移动它。它也在创建两个jar文件。一个与正常的一个和另一个与所有在最后。