【问题标题】:Jar files empty when copying with gradle使用 gradle 复制时 Jar 文件为空
【发布时间】:2017-05-06 13:50:01
【问题描述】:

我的根项目中有几个子项目。

| - root
 \ 
   | - subproject_a
   | - subproject_b
   | - subproject_c

subproject_c 中的 gradle 文件将 subproject_a 和 subproject_b 生成的 jars 复制到自己的 libs 文件夹中进行编译。

文件被复制(即,jar 文件的名称显示在 subproject_c 的 libs 文件夹中)但它们完全是空的。

这是 subproject_c 的 gradle 文件中进行复制的部分。

task copyJars(type: Copy) {
    rootProject.subprojects.each {
        from("${it.projectDir}/libs") {
            include '*.jar'
        }
        into "{projectDir}/libs"
    }
} 

【问题讨论】:

  • 您的子项目生成的 jar 位于它们各自的 libs 文件夹中,这对我来说似乎很奇怪。你怎么把它们放在那里?您确定要复制正确的 jar 文件吗?
  • @lukegv jar 是由各个子项目中的 gradle 文件创建的。我相信它们是测试所必需的,因此它们是在子项目的 lib 文件夹中生成的,而不是直接在 subproject_c 的 libs 文件夹中生成的,但我可以仔细检查。 Subproject_c 的文件夹中填充了与 subproject_a 和 subproject_a 中相同名称的 jar 文件,但是 jar 文件是空的。

标签: gradle jar


【解决方案1】:

我是为了那些将来可能遇到这种情况的人而做出回应的。这最终对我有用。

 task copyJars() { 
    rootProject.subprojects.each { 
        File fileProj = new File("{it.projectDir}", "libs");
        if(fileProj.exists() && fileProj.absolutePath != "${projectDir}/libs") { 
            copy {
                from(fileProj)
                into "${projectDir}/libs"
                include "*.jar"
             }  
        }
    }
 } 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-30
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-15
    • 2022-01-17
    • 2023-01-31
    相关资源
    最近更新 更多