Gradle4.4(fatJar)是否有类似shadow的插件

Gradle4.4(fatJar)是否有类似shadow的插件,gradle,Gradle,我正试着做一个肥罐子,然后移动它。影子插件失败了,我说它找不到插件。我正在尝试创建一个fatjar 我有这个可以很好地移动文件,但它包括每个jar文件,我只需要一个大的文件,然后移动它: task copyJarIntoDockerDirectory(type: Copy) { dependsOn jar from configurations.runtime from jar into '../docker/ekomi-import' rename '

我正试着做一个肥罐子,然后移动它。影子插件失败了,我说它找不到插件。我正在尝试创建一个fatjar

我有这个可以很好地移动文件,但它包括每个jar文件,我只需要一个大的文件,然后移动它:

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文件。一个与正常的一个和另一个与所有在最后。