【问题标题】:Using testCompile output from other subproject (Gradle Kotlin DSL)使用来自其他子项目的 testCompile 输出(Gradle Kotlin DSL)
【发布时间】:2019-04-19 12:37:37
【问题描述】:

我的一个 gradle 子项目的测试源中有一些实用程序文件,我想在其他子项目中使用它们。 我的“源”子项目称为core,而使用它的子项目称为tem

我尝试迁移和集成following example

In your Server project:

configurations {
    testArtifacts.extendsFrom testCompile
}
task testJar(type: Jar) {
    classifier "test"
    from sourceSets.test.output
}
artifacts {
    testArtifacts testJar
}

In your ServerWeb project:

testCompile project(path: ":Server", configuration: 'testArtifacts')

据我所知,正在进行对话。我在core.gradle.kts 中添加了以下内容:

val testConfig = configurations.create("testArtifacts") {
    extendsFrom(configurations["testCompile"])
}

tasks.register("testJar", Jar::class.java) {
    classifier += "test"
    from(sourceSets["test"].output)
}

artifacts {
    add("testArtifacts", tasks.named<Jar>("testJar") )
}

并尝试在tem.gradle.kts中引用它:

testImplementation(project(":core", "testArtifacts"))

它可以编译,但我仍然无法从核心访问这些类。

我错过了什么?

【问题讨论】:

    标签: gradle build.gradle gradle-kotlin-dsl


    【解决方案1】:

    以下配置对我有用,包括测试类和测试资源:

    核心 build.gradle.kts

    val testConfig = configurations.create("testArtifacts") {
        extendsFrom(configurations["testCompile"])
    }   
    
    tasks.register("testJar", Jar::class.java) {
        dependsOn("testClasses")
        classifier += "test"
        from(sourceSets["test"].output)
    }   
    
    artifacts { 
        add("testArtifacts", tasks.named<Jar>("testJar") )
    } 
    

    tem build.gradle.kts

    testImplementation(project(":core", "testArtifacts"))
    

    【讨论】:

      【解决方案2】:

      你的大部分代码应该没问题

      但是你必须为jar定义classesDirs

      tasks.register<Jar>("testJar") {
          dependsOn("testClasses")
          archiveBaseName.set("${project.name}-test")
          from(sourceSets["test"].output.classesDirs)
      }
      

      我还添加了依赖于 testClasses 以确保编译类。

      您可以通过执行 testJar 任务来测试该 jar 是否正常。然后验证生成的 jar 是否包含您的类。如果你对 from 方法调用出错,那么你会得到一个空 jar。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-04
        • 2017-10-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多