如何将 CruiseControl 最新构建工件发布到静态 URL

发布于 2024-08-10 06:27:06 字数 1813 浏览 9 评论 0原文

我有一个 Java 多模块 Maven 项目,我想构建一个 MVN 站点和 javadocs,并让 CruiseControl 将最新的每日构建发布到配置的静态位置。

问题是 CruiseControl artifactPublisher 允许您指定目标目录,但它是带有上次构建的最新时间的时间戳。我希望能够发布到在每个构建中被覆盖的位置,例如:

http://cc-buildserver/cruisecontrol/artifacts/gameplatform-documentation/  

artifactPublisher 文档

dir - 将从这里复制所有文件 目录

dest - 实际的父目录 目标目录;实际的 目标目录名称将是 构建时间戳。

子目录 - 独特的子目录 (时间戳)包含的目录 文物

例如,如果我有一个名为 gameplatform-documentation 的 CruiseControl 项目,并且我这样配置我的artifactPublisher:

<project name="gameplatform-documentation" forceOnly="true" requireModification="false" forceBuildNewProject="false" buildafterfailed="false">
...
    <schedule>
        <composite time="2300">
            <maven2 
                 mvnhome="${mvn.home}" 
         pomfile="${dev.root}/gameplatform-parent/pom.xml"
                goal="site" />

        </composite>
    </schedule>

    <publishers>
        <artifactspublisher
            dir="${dev.root}/gameplatform-parent/target/site" 
    dest="artifacts/gameplatform-documentation" />
    </publishers>
</project>

我最终会在每个构建的不同目录中得到 Maven 生成的站点和 javadocs:

http://cc-buildserver/cruisecontrol/cruisecontrol/artifacts/gameplatform-documentation/20091110130202/

也许我需要使用自定义 AntPublisher 或 FTPPublisher 并创建另一个 Web 服务器来托管已发布的文档。我还可以使用 CC 源代码控制工具并将文档签入到我们的 SVN 服务器中,并使用它来提供文档。

如何才能做到这一点?

I have a Java multi-module Maven project that I want to build an MVN site and javadocs and have CruiseControl publish the latest daily builds to a configured static location.

The trouble is the CruiseControl artifactPublisher allows you to specify a dest directory but it is timestamped with the latest time of the last build. I want to be able to publish to a location that gets overridden on each build, such as:

http://cc-buildserver/cruisecontrol/artifacts/gameplatform-documentation/  

artifactPublisher documentation:

dir - will copy all files from this
directory

dest - parent directory of actual
destination directory; actual
destination directory name will be the
build timestamp.

subdirectory -
subdirectory under the unique
(timestamp) directory to contain
artifacts

For example if I have a CruiseControl project called gameplatform-documentation and I configure my artifactPublisher as such:

<project name="gameplatform-documentation" forceOnly="true" requireModification="false" forceBuildNewProject="false" buildafterfailed="false">
...
    <schedule>
        <composite time="2300">
            <maven2 
                 mvnhome="${mvn.home}" 
         pomfile="${dev.root}/gameplatform-parent/pom.xml"
                goal="site" />

        </composite>
    </schedule>

    <publishers>
        <artifactspublisher
            dir="${dev.root}/gameplatform-parent/target/site" 
    dest="artifacts/gameplatform-documentation" />
    </publishers>
</project>

I end up with my Maven generated site and javadocs in a different directory each build:

http://cc-buildserver/cruisecontrol/cruisecontrol/artifacts/gameplatform-documentation/20091110130202/

Maybe I need to use a custom AntPublisher or FTPPublisher and create another webserver to host the published docs. I could also use CC source control tools and checkin the documentation into our SVN server and use that to serve the documentation.

How can this be accomplished?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

握住我的手 2024-08-17 06:27:06

我们最终使用 Maven 的 站点部署插件 通过 SCP 发布文档工件(在 Windows 服务器上使用 cygwin SSHD 服务器设置)到我们的 CruiseControl 服务器的“artifact”文件夹:

<distributionManagement>
    <site>
        <id>dev.website</id>
        <url>scp://user@buildserver/cygdrive/c/Users/user/servers/cruisecontrol-project-2.8.3/artifacts/documentation/project/gameplatform</url> 
    </site>
</distributionManagement> 

然后我们可以通过访问以下方式访问夜间构建的文档:

http://buildserver:8081/cruisecontrol/artifacts/documentation/project/gameplatform

We ended up using Maven's site deploy plugin to publish the documentation artifacts through SCP (using cygwin SSHD server setup on Windows server) to our CruiseControl server's "artifact" folder:

<distributionManagement>
    <site>
        <id>dev.website</id>
        <url>scp://user@buildserver/cygdrive/c/Users/user/servers/cruisecontrol-project-2.8.3/artifacts/documentation/project/gameplatform</url> 
    </site>
</distributionManagement> 

Then we're able to access the nightly built documentation them by visiting:

http://buildserver:8081/cruisecontrol/artifacts/documentation/project/gameplatform
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文