2

我正在尝试使用 Rational Team Concert 来存储我们的二进制文件和/或构建工件。我正在运行 mvn deploy 命令将构建工件部署到 RTC。尽管它可以识别连接,但它会向我抛出 Http 状态代码:500 错误。

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

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

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

4

2 回答 2

2

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

不,RTC 不是工件存储库(就像 maven 存储库一样)。
它是一个与源代码库和构建引擎前端相结合的票证系统。

它可以存储源并使用它们来触发会产生交付的作业(如二进制文件)。
但该可交付成果必须存储在其他地方。不在 RTC 中。

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

您可以轻松地从工件存储库中删除工件:cd + rm。
不能轻易地从源代码库中删除相同的交付物(本质上,它会保留您在其中记录的历史记录)

于 2014-03-26T16:20:33.380 回答
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 上的讨论值得一看。

于 2014-04-05T13:35:28.370 回答