我正在运行 cruisecontrol 和 maven 来构建 Scala 项目。
当我在 cruisecontrol 之外运行 mvn package 时,构建过程花费不到 10 秒,但是当我从 cruisecontrol 调用构建时,编译阶段大约需要 300 秒。我正在寻找有关如何使用 maven 加速编译的提示和技巧。
我注意到的一件事是 CruiseControl 不断收到错误:无法到达仪表板实例:http://localhost:8080/仪表板/buildloop/监听器仪表板尚未启动,或者存在网络问题。
当我在谷歌上搜索这个问题时,我发现如果你的配置中没有,那么这个问题就会经常出现,但是因为我有这个,所以我对这个错误感到困惑。
我的 config.xml 看起来像这样:
<cruisecontrol>
<project
name="XXX"
buildafterfailed="false">
<modificationset
quietperiod="30">
<svn
LocalWorkingCopy="XXX"
username="XXX"
password="XXX" />
</modificationset>
<listeners></listeners>
<bootstrappers>
<svnbootstrapper
localWorkingCopy="XXX"
username="XXX"
password="XXX" />
</bootstrappers>
<schedule
interval="20">
<maven2
mvnhome="/opt/maven"
goal="clean package"
pomfile="XXX/XXX/checkout/trunk/pom.xml" />
</schedule>
<log dir="logs/remote-control-api-trunk">
<merge
dir="XXX/XXX/checkout/trunk/target/surefire-reports/"
pattern="TEST-*.xml" />
</log>
<publishers>
<onsuccess>
<artifactspublisher
file="/XXX/XXX/checkout/trunk/target/XXX.war"
dest="/XXX/cruisecontrol/artifacts"
/>
</onsuccess>
</publishers>
</project>
</cruisecontrol>
答案1
config.xml
clean package
就像您提到的那样,mvn package
在巡航控制外面进行操作。尝试运行mvn clean package
。
您可能还想检查其他一些事项:
- 巡航控制和命令行使用的 Maven 版本相同吗?
- Maven super-pom/profiles 在两次调用中均处于活动状态