【问题标题】:Has anyone tried using Mvn Deploy to deploy to Rational Team Concert有没有人尝试使用 Mvn Deploy 部署到 Rational Team Concert
【发布时间】:2014-04-05 21:35:28
【问题描述】:

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

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

    【讨论】:

    • 感谢冯的快速回复。我有别的问题。我正在使用 Rational Asset Manager (RAM) 来存储我构建的二进制文件。有没有人成功使用 mvn deploy 命令(不使用 RTC?)?我为混乱道歉..
    【解决方案2】:

    我使用 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 上的讨论值得一看。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-02
      • 1970-01-01
      • 1970-01-01
      • 2023-03-14
      • 2011-01-05
      • 2013-01-21
      • 1970-01-01
      • 2010-11-10
      相关资源
      最近更新 更多