我有一个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>
我在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}'
如何修复依赖?
答案 0 :(得分:0)
当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'
- &gt; compile group:'com.bq', name:'bigquery', version:'0.0.1'
注意:在pom.xml文件中,您还有0.0.1
答案 1 :(得分:0)
使用像这样的maven配置文件被视为反模式,进一步阅读here
Gradle没有完全支持maven配置文件激活。阅读博文here,了解两个支持的配置文件激活触发器是
- 默认情况下处于活动状态的配置文件(适用于Gradle 1.12及更高版本)
- 缺少系统属性时可用的配置文件(Gradle 2.0及更高版本可用)
作为解决方法,您可以执行以下操作:
然后gradle应从本地仓库获取pom,从远程仓库获取jar等
例如:
repositories {
maven {
url = file('local-repo')
}
mavenCentral()
}
然后你会调整&#34;调整&#34; pom at
$projectDir/local-repo/$group.replace('.','/')/$artifact/$version/$artifactId-$version.pom