gpt4 book ai didi

maven - 从其他项目中提取 gradle 测试 jar

转载 作者:行者123 更新时间:2023-12-04 15:45:13 26 4
gpt4 key购买 nike

我在 maven 中有一个多项目设置并试图切换到 gradle。我想弄清楚如何让一个项目的测试依赖项包含另一个项目的测试 jar。现在我在 ProjectA 中有以下内容:

packageTests = task packageTests(type: Jar) {
classifier = 'tests'
from sourceSets.test.output
}

tasks.getByPath(":ProjectA:jar").dependsOn(packageTests)

在 ProjectB 中,我有:
testCompile project(path: ':ProjectA', classifier: 'tests')

我看到我的测试无法编译。看起来他们缺少测试 jar 中定义的类。当我检查构建目录时,我看到存在 ProjectA-0.1.56-SNAPSHOT-tests.jar。

在 Maven 中,我为 ProjectA 提供了以下内容:
  <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>

这对于 ProjectB:
<!-- Testing -->
<dependency>
<groupId>com.example</groupId>
<artifactId>ProjectA</artifactId>
<version>0.1.56-SNAPSHOT</version>
<type>test-jar</type>
</dependency>

我怎样才能让它像 maven 一样工作?

最佳答案

你最终会得到什么

tasks.create( [
name: 'testJar',
type: Jar,
group: 'build',
description: 'Assembles a jar archive containing the test classes.',
dependsOn: tasks.testClasses
] ) {
manifest = tasks.jar.manifest
classifier = 'tests'
from sourceSets.test.output
}

// for test dependencies between modules
// usage: testCompile project(path: ':module', configuration: 'testFixtures')
configurations { testFixtures { extendsFrom testRuntime } }

artifacts {
archives testJar
testFixtures testJar
}

tasks.uploadArchives.dependsOn testJar

关于maven - 从其他项目中提取 gradle 测试 jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17523217/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com