有没有人尝试使用Mvn Deploy部署到Rational Team Concert

时间:2014-03-26 16:10:07

标签: maven rtc jazz rational-team-concert ibm-jazz

我正在尝试使用Rational Team Concert来存储我们的二进制文件和/或构建工件。我正在运行mvn deploy命令将我的构建工件部署到RTC。虽然它识别连接它给我一个Http状态代码:500错误。

我还检查了RTC日志以获取更多信息,但我没有看到任何特定的异常。互联网上的所有示例或文档都说我们必须配置RTC构建引擎来运行构建。

我只是想知道是否有人尝试使用Mvn部署从命令行发布到RTC(不使用RTC cleint)?这可以吗?

如果您已使用maven成功将工件发布到RTC,请详细说明您是如何做到的?

2 个答案:

答案 0 :(得分:2)

  

我只是想知道是否有人尝试使用Mvn部署从命令行发布到RTC(不使用RTC cleint)?

不,RTC不是artifact repository(就像maven repo那样) 它是一个票证系统,配有源代码库和构建引擎前端。

它可以存储资源并使用它们来触发可以产生交付的工作(如二进制) 但是,这笔可交付成果必须存储在其他地方。不在RTC。

  • RTC有自己的数据库来存储所有内容(票证,来源,构建定义和构建记录)
  • 真正的工件仓库(如maven)是一个简单的共享目录集合,其中发布了可交付成果。

您可以轻松地从工件仓库中删除工件: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的讨论值得一看。