我在我的应用程序中使用Gradle(v2.0)。对于其中一个依赖项,我在版本中使用通配符(请参见下面的代码)
build.gradle
ext {
my_utils_version = "1.0+"
}
dependencies {
compile "com.demo.myapp:my-utils:${my_utils_version}"
}
我正在使用以下代码从gradle构建中生成POM
task writePom << {
conf2ScopeMappings.mappings.remove(configurations.testCompile)
conf2ScopeMappings.mappings.remove(configurations.testRuntime)
pom {
}.writeTo("$buildDir/libs/pom.xml")
}
assemble.dependsOn writePom
因此,每当Gradle生成POM时,它都会使用
1.0+
作为依赖项compile "com.demo.myapp:my-utils:${my_utils_version}"
的版本。在生成的POM.xml中,我看到了<dependency>
<groupId>com.demo.myapp</groupId>
<artifactId>my-utils</artifactId>
<version>1.0+</version>
<scope>compile</scope>
</dependency>
Maven无法解析
1.0+
版本。 Maven需要[1.0)
作为自己的通配符版本控制。有人可以帮我解决这个问题吗?我如何告诉Gradle使用
[1.0)
而不是1.0+
?
最佳答案
Gradle确实支持Maven的版本范围符号,因此您可以在构建脚本中使用[1.0)
(尽管我不确定Maven / Gradle是否允许忽略上限)。
关于maven - 如何从gradle build生成pom.xml时使用通配符解决依赖性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25149438/