簡體   English   中英

使用Gradle將所有創建的和第三方jar復制到一個文件夾中

[英]Copy all created & third-party jars into a single folder with Gradle

我們有一個多項目gradle設置,每個子項目有一個Java jar:

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

現在,因為我們正在創建Java webstart應用程序,所以我們需要簽署所有項目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])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM