我有多个具有相同组ID和版本ID的依赖项。 例如,
dependencies {
compile "org.springframework.boot:spring-boot-starter-jetty:2.1.0.RELEASE"
compile "org.springframework.boot:spring-boot-starter:2.1.0.RELEASE"
testCompile group: 'junit', name: 'junit', version: '4.12'
}
我想将2.1.0.RELEASE移到一次定义的属性中。 这是example,我将在Maven中进行。
<properties>
<spring.boot.version>2.1.0.RELEASE</spring.boot.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
<version>${spring.boot.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>${spring.boot.version}</version>
</dependency>
</dependencies>
我想用gradle获得类似的方法。到目前为止,我试图拥有一个 gradle.properties 文件,并在该文件中拥有一个属性。
springBootVersion=2.1.0.RELEASE
build.gradle 将是
dependencies {
compile "org.springframework.boot:spring-boot-starter:${springBootVersion}"
compile "org.springframework.boot:spring-boot-starter-jetty:${springBootVersion}"
testCompile group: 'junit', name: 'junit', version: '4.12'
}
如果我在属性名称中使用点.
,它将无法构建。
同样,gradle.properties中的 spring.boot.version 属性失败,并显示错误:
Could not get unknown property 'spring' for object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.
答案 0 :(得分:1)
简而言之,您不能直接使用spring.boot.version
来引用用相同名称定义的属性,因为在Groovy it actually means reference the property called **version** in the object called **boot** which is a property of object called **spring**
中可以这样做
...-boot-starter: ${project.ext["spring.Boot.Version"]}"
这将允许您添加带有任意数量的句点的属性。例如,在您的gradle.properties
中
hello.world=heelloooo
那你就可以做
print "The world of stackoverflow says ${project.ext["hello.world"]}"
在您的构建脚本中。