使用Gradle将所有创建的和第三方jar复制到一个文件夹中

我们有一个多项目gradle设置,每个子项目都有一个Java jar:

- root-project |-sub-project-a |-sub-project-b |-sub-project-c 

现在,因为我们正在创建Java webstart应用程序,所以我们需要签署所有项目jar以及所有第三方库(依赖项)。

我现在的方法是将所有已构建的子项目jar和所有第三方库复制到一个单独的文件夹中,并执行签名任务。 但是我无法复制jar子。

这是我在root build.gradle中的方法:

 task copyFiles(type: Copy, dependsOn: subprojects.jar) { from configurations.runtime from("build/libs") into("webstart/lib") include('*.jar') } 

和…一起:

 task signAll(dependsOn: [copyFiles]) << { new File('webstart/signed').mkdirs() def libFiles = files { file('webstart/lib').listFiles() } ... } 

然后我尝试执行gradle signAll。 但是,我只能在webstart / lib文件夹中找到一个带有根项目名称的空jar。

也许我的做法完全错了。 如何将所有创建的和第三方派对复制到一个文件夹中?

将这段代码添加到root build.gradle中它应该可以正常工作:

 allprojects { apply plugin: 'java' repositories { mavenCentral() } } task copyJars(type: Copy, dependsOn: subprojects.jar) { from(subprojects.jar) into project.file('dest') } task copyDeps(type: Copy) { from(subprojects.configurations.runtime) into project.file('dest/lib') } task copyFiles(dependsOn: [copyJars, copyDeps])