我想从它使用gradle这个建设项目我的Java项目中访问构建信息。我需要访问的信息是由teamcity生成的内部版本号,生成vcs编号等。这些很容易通过maven访问,并使用maven-replacer插件,这些插件可以在属性文件中替换。首先,有没有其他方法可以达到同样的效果?然后,如何做到这一点? :)摇篮:访问建立信息
我想尽了办法共享here,但我总是空的版本号。
在行家我放置在属性文件(project.properties)项目以保持关键值对连键是象
project.groupId,project.artifactId,project.version, 那些项目信息maven.build.timestamp
我希望使用gradle访问相同的构建信息。 。聚甲醛看起来象下面这样:
<!-- Write project version number to file -->
<plugin>
<groupId>com.google.code.maven-replacer-plugin</groupId>
<artifactId>maven-replacer-plugin</artifactId>
<version>1.3.8</version>
<executions>
<execution>
<phase>prepare-package</phase>
<goals>
<goal>replace</goal>
</goals>
</execution>
</executions>
<configuration>
<includes>
<!-- replace the token in this file -->
<include>target/classes/project.properties</include>
</includes>
<replacements>
<replacement>
<token>PROJECT_GROUP</token>
<value>${project.groupId}</value>
</replacement>
<replacement>
<token>PROJECT_ARTIFACT</token>
<value>${project.artifactId}</value>
</replacement>
<replacement>
<token>PROJECT_VERSION</token>
<value>${project.version}</value>
</replacement>
<replacement>
<token>PROJECT_BUILD_DATE</token>
<value>${maven.build.timestamp}</value>
</replacement>
<replacement>
<token>BUILD_NUMBER</token>
<value>${build.number}</value>
</replacement>
</replacements>
</configuration>
</plugin>
什么Maven的替代品插件不为取代值对象的属性,可以在Java应用程序中使用。
我需要使用gradle这个访问相同的属性。
在POM团队市配置如下:
<ciManagement>
<system>Team City</system>
<url>http://teamcity.mycompany.com/teamcity/project.html?projectId=bt007
</url>
</ciManagement>
在build.gradle
文件,我定义如下任务:
task getProjectGroup << {
ext.projectGroup = System.getProperty("project.group")
println "Project Group: $projectGroup"
}
我得到执行此任务时的输出如下:
:service:getProjectGroup
Project Group: null
BUILD SUCCESSFUL
如果你得到'null',你的TeamCity版本不会设置这个系统属性,你也不能从Maven访问它。在属性文件中替换占位符是配置'processResources'任务的问题(请参阅[Gradle Build Language Reference](http://gradle.org/docs/current/dsl/index.html)中的'Copy')。 –
我无法在上面的Maven POM中找到任何TeamCity属性。 –
已经更新上面。还添加了团队城市配置以完成问题。 – Aspirant