我正在尝试使用Rational Team Concert来存储我们的二进制文件和/或构建工件。我正在运行mvn deploy命令将我的构建工件部署到RTC。虽然它识别连接它给我一个Http状态代码:500错误。
我还检查了RTC日志以获取更多信息,但我没有看到任何特定的异常。互联网上的所有示例或文档都说我们必须配置RTC构建引擎来运行构建。
我只是想知道是否有人尝试使用Mvn部署从命令行发布到RTC(不使用RTC cleint)?这可以吗?
如果您已使用maven成功将工件发布到RTC,请详细说明您是如何做到的?
答案 0 :(得分:2)
我只是想知道是否有人尝试使用Mvn部署从命令行发布到RTC(不使用RTC cleint)?
不,RTC不是artifact repository(就像maven repo那样) 它是一个票证系统,配有源代码库和构建引擎前端。
它可以存储资源并使用它们来触发可以产生交付的工作(如二进制) 但是,这笔可交付成果必须存储在其他地方。不在RTC。
您可以轻松地从工件仓库中删除工件:cd + rm。
您无法轻松地从源代码库中删除相同的可交付成果(本质上,保留您在其中记录的历史记录
答案 1 :(得分:1)
我使用RTC的构建引擎和maven来创建在RTC构建结果中识别的工件。这不是类似maven的存储库,而是使用RTC来跟踪构建工件(用于错误报告等)。 (如果要发布到存储库,我建议您查看http://www.sonatype.org/nexus/,它允许maven和Eclipse p2存储库。)
要创建RTC识别的工件,在我的maven pom.xml中,我添加了一些执行任务来运行RTC发布任务。您的maven安装需要访问IBM相关的jar。 (您可以将它们复制到您的maven库中。)这里有关于此的讨论:https://jazz.net/forum/questions/4936/how-to-publishing-build-results-using-maven
例如,以下内容将生成的工件链接到RTC构建报告。
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.3</version>
<executions>
<execution>
<id>jazz-link-activity</id>
<phase>package</phase>
<configuration>
<tasks name="publish link" if="link">
<property name="buildtoolkitpath" value="${buildtoolkitpath}" />
<property name="buildResultUUID" value="${buildResultUUID}" />
<property name="${repositoryAddress}" value="${repositoryAddress}" />
<property name="user" value="${builderId}" />
<property name="user.password" value="${builderPassword}" />
<property name="label"
value="${project.build.finalName}.v${buildNumber}" />
<property name="url" value="http://your-url/" />
<ant antfile="../XXX.parent/antTasks.xml" inheritAll="true"
target="linkPublisher" />
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
我有一个单独的ant任务文件(antTasks.xml),它公开了RTC构建函数。它看起来像这样:
<project name="JazzTasks">
<target name="setPaths" unless="jazzlib.dir">
<property name="jazzlib.dir" value="C:/Program Files/maven" />
<echo message="Jazz maven library path ${jazzlib.dir}" />
<echo message="Jazz buildtoolkit path ${buildtoolkitpath}" />
</target>
<target name="startBuildActivity" depends="init">
<echo message="Starting build activitty" />
</target>
<target name="linkPublisher" unless="publish.skip" depends="init">
<linkPublisher buildResultUUID="${buildResultUUID}" repositoryAddress="${repositoryAddress}" userId="${user}" password="${user.password}" verbose="true" url="${url}" label="${label}" failOnError="false" />
</target>
<target name="linkPublisher" unless="publish.skip" depends="init">
<linkPublisher buildResultUUID="${buildResultUUID}" repositoryAddress="${repositoryAddress}" userId="${user}" password="${user.password}" verbose="true" url="${url}" label="${label}" failOnError="false" />
</target>
<taskdef name="linkPublisher" classname="com.ibm.team.build.ant.task.LinkPublisherTask" >
<classpath>
<fileset dir="${buildtoolkitpath}">
<include name="*.jar" />
</fileset>
</classpath>
</taskdef>
关于jazz.net的讨论值得一看。