所以我们的部分构建是狗慢,因为它有很多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。可能的错误?
答案 0 :(得分:0)
将其用作:
testCompile "com.someplace:xyz-somedata:4.4.0-SNAPSHOT:tests"
Gradle依赖声明采用以下形式:
[organisation]:[module]:[revision]:[classifier]@[ext]