[英]Gradle unable to resolve maven profile dependency
我有一個Maven項目A,其中的配置文件為:
<properties>
<bigquery.version>0.0.1</bigquery.version>
</properties>
.
.
<profiles>
<profile>
<id>dev</id>
<activation></activation>
<properties>
<build.version>${bigquery.version}</build.version>
</properties>
</profile>
<profile>
<id>screwdriver-v3</id>
<activation>
<activeByDefault>true</activeByDefault>
<property>
<name>screwdriver3</name>
</property>
</activation>
<properties>
<buildtype>release</buildtype>
<build.version>${bigquery.version}.${maven.build.timestamp}</build.version>
</properties>
</profile>
我在以下位置創建了A版本: 0.0.1.20180424-0042
我有另一個gradle項目B,我想將A作為依賴添加為:
compile group:'com.bq', name:'bigquery', version:'0.0.1.20180424-0042'
當我使用./gradlew clean build
構建gradle時,它抱怨為:
Could not resolve all files for configuration ':compileClasspath'.
> Could not resolve com.bq:bigquery:0.0.1.20180424-0042.
Required by:
project :
> Could not resolve com.bq:bigquery:0.0.1.20180424-0042.
> inconsistent module metadata found. Descriptor: com.bq:bigquery:0.0.1.${maven.build.timestamp} Errors: bad version: expected='0.0.1.20180424-0042' found='0.0.1.${maven.build.timestamp}'
我該如何解決依賴關系?
當maven創建版本時,它會在最后添加時間戳,例如在nexus中,我正在檢查您是否存在版本0.0.3-SNAPSHOT
工件,但jar是0.0.3-20161026.145419-3
,所以最可能是您需要更改的是: compile group:'com.bq', name:'bigquery', version:'0.0.1.20180424-0042'
-> compile group:'com.bq', name:'bigquery', version:'0.0.1'
注意:在pom.xml文件中,您還有0.0.1
像這樣使用Maven配置文件被認為是反模式,請在此處進一步閱讀
Gradle不完全支持Maven配置文件激活。 在此處閱讀博客文章,以了解兩個受支持的配置文件激活觸發器是
- 默認情況下處於活動狀態的配置文件(適用於Gradle 1.12及更高版本)
- 在沒有系統屬性的情況下處於活動狀態的配置文件(在Gradle 2.0及更高版本中可用)
作為一種解決方法,您可以執行以下操作:
然后gradle應該從本地倉庫中獲取pom,從遠程存儲庫中獲取jars等
例如:
repositories {
maven {
url = file('local-repo')
}
mavenCentral()
}
然后,您可以將“已調整”的pom放在
$projectDir/local-repo/$group.replace('.','/')/$artifact/$version/$artifactId-$version.pom
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.