当前位置: 首页 > 知识库问答 >
问题:

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

罗奇文
2023-03-14

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

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

现在,由于我们正在创建一个Java webstart应用程序,我们需要对所有项目JAR以及所有第三方库(依赖项)进行签名。

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() }
    ...
}

然后我试图处决格雷德尔·西格纳。但是,我只能在webstart/lib文件夹中找到一个带有根项目名称的空jar。

也许我的做法完全错误。要将所有创建的thrid-party jar复制到一个文件夹中,我必须做什么?

共有1个答案

左丘源
2023-03-14

将这段代码添加到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])
 类似资料:
  • 问题内容: 我们有一个多项目gradle设置,每个子项目都有一个Java jar: 现在,由于我们正在创建Java Webstart应用程序,因此我们需要对所有项目jar以及所有第三方库(依赖项)进行签名。 现在,我的方法是将所有已构建的子项目jar和所有第三方库复制到单独的文件夹中,并执行用于对其签名的任务。但是我无法复制罐子。 这是我在root build.gradle中的方法: 和…一起:

  • 问题内容: 这个问题已经在这里有了答案 : 使用Java将文件从一个目录复制到另一个目录 (33个答案) 4年前关闭。 如何将一个文件夹及其所有子文件夹和文件复制到另一个文件夹中? 问题答案: Apache Commons IO可以为您解决问题。看看FileUtils。

  • 我有一个META-INF文件夹,其中有persitence.xml和orm.xml。当我用下面的gradle构建一个jar文件时,这些文件不会包含在jar中。如何将这些文件复制到jar中?

  • 我有一个多项目分级设置。我想简单地复制任何项目的生成的jar文件,任何时候jar是重新构建的,并且认为这将在我的根项目的子项目关闭中起作用: 但是如果我运行任何子项目的'clean'任务和'jar'任务,那么我的jar将像往常一样在build/libs下生成,但不会复制。 查看gradle输出,它只运行compileJava、processResources、Classs,然后运行JAR。它没有运

  • 问题内容: 我正在Swift中构建一个简单的程序,它应该将具有特定扩展名的文件复制到另一个文件夹中。如果该文件夹存在,程序将只将它们复制到该文件夹​​中;如果该文件夹不存在,则程序必须先将其复制。 运行此代码将正确识别MTS文件,但会导致“添加失败…”,我在做什么错? 问题答案: 从文档中: 放置的副本的路径。此路径必须在新位置包含文件或目录的名称。… 您必须将文件名附加到调用的目标目录中 (为S