如何将 CruiseControl 最新构建工件发布到静态 URL
我有一个 Java 多模块 Maven 项目,我想构建一个 MVN 站点和 javadocs,并让 CruiseControl 将最新的每日构建发布到配置的静态位置。
问题是 CruiseControl artifactPublisher 允许您指定目标目录,但它是带有上次构建的最新时间的时间戳。我希望能够发布到在每个构建中被覆盖的位置,例如:
http://cc-buildserver/cruisecontrol/artifacts/gameplatform-documentation/
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
directorydest - 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我们最终使用 Maven 的 站点部署插件 通过 SCP 发布文档工件(在 Windows 服务器上使用 cygwin SSHD 服务器设置)到我们的 CruiseControl 服务器的“artifact”文件夹:
然后我们可以通过访问以下方式访问夜间构建的文档:
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:
Then we're able to access the nightly built documentation them by visiting: