Gradle如何解析maven存储库中的测试jar?

时间:2016-02-12 18:08:56

标签: maven testing gradle jar

所以我们的部分构建是狗慢,因为它有很多drules编译。为此编写了一个自定义maven插件,但在转换为Gradle时,决定将此部分提取到另一个项目,然后将使用他们提供的新插件进行drules升级。

这个决定给我们留下了一些项目依赖,这些依赖变成了像这样的jar依赖。这是必要的,因为有人决定使用一个子项目中的一些类,另一个子类:

testCompile "com.someplace:xyz-somedata:4.4.0-SNAPSHOT-tests"

问题是,尽管我已经确认它在本地仓库中,但这并没有解决。

... OK。我可以通过以下方式将其重新安装到本地仓库来解决这个问题:

mvn install:install-file -Dfile=${2} -DgroupId=${GROUP} -DartifactId=${NAME} -Dversion=${VERSION} -Dpackaging=jar

...现在它在:

4.4.0-SNAPSHOT-tests/xyz-somedata-4.4.0-SNAPSHOT-tests.jar. 

而不是

6.6.0-SNAPSHOT/wnp-participantdata-6.6.0-SNAPSHOT-tests.jar

简而言之,这使它成为一个生产罐,而另一个是测试罐。

有没有更好的解决方案?像这样的黑客只会在我嘴里留下不好的味道。难道我不能以某种方式告诉Gradle这是一个测试罐,而且它会在回购中找到它? Gradle应该能够做到这一点,恕我直言,如果它完全支持maven。可能的错误?

1 个答案:

答案 0 :(得分:0)

将其用作:

testCompile "com.someplace:xyz-somedata:4.4.0-SNAPSHOT:tests"

Gradle依赖声明采用以下形式:

[organisation]:[module]:[revision]:[classifier]@[ext]