当前位置: 首页 > 面试题库 >

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

颜经艺
2023-03-14
问题内容

我们有一个多项目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])


 类似资料:
  • 我们有一个多项目分级设置,每个子项目都有一个Java jar: 现在,由于我们正在创建一个Java webstart应用程序,我们需要对所有项目JAR以及所有第三方库(依赖项)进行签名。 连同: 然后我试图处决格雷德尔·西格纳。但是,我只能在webstart/lib文件夹中找到一个带有根项目名称的空jar。 也许我的做法完全错误。要将所有创建的thrid-party jar复制到一个文件夹中,我必

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

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

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

  • 你知道我该怎么做吗?