覆盖openshift maven脚本(jenkins gear)

时间:2013-09-16 11:40:11

标签: shell maven jenkins openshift

我在Openshift上有Jenkins实例

我已经启用了Jenkins构建我的Openshift应用程序 这里是Jenkins shell脚本的一部分,并记录它们产生的内容:

# Sync any libraries
rsync $upstream_ssh:~/.m2/ ~/.m2/

# Build/update libs and run user pre_build and build
gear build
上面的

命令触发了这样的动作

+ gear build
Found pom.xml... attempting to build with 'mvn -e clean package -Popenshift -DskipTests'
Apache Maven 3.0.3 (r1075437; 2011-06-20 13:22:37-0400)
Maven home: /etc/alternatives/maven-3.0

我想自定义maven选项(在这种情况下允许通过删除-DskipTests部分来运行测试) 在脚本中,我尝试添加一些步骤,同时禁用此gear build命令

# Run tests here
mvn -e clean package -Popenshfit

以上运行mvn clean package但不更新上次成功的工件,日志显示

[WARNING] The requested profile "openshfit" could not be activated because it does not exist

我在pom.xml中有个人资料,所以我不知道发生了什么

 <profiles>
    <profile>
        <id>openshift</id>

这不适用于:

 mvn --global-settings $OPENSHIFT_MAVEN_MIRROR clean package -Popenshift

上面可能是一些老员工(摘自https://www.openshift.com/blogs/jenkins-polyglot-persistence-part-2

欢迎任何关于在Openshift上自定义此gear build或覆盖maven选项的想法:)我可以直接在机器上进行更改(jenkins,jenkins-build)(到目前为止免费的openhift帐户允许我:))

修改

一些解决方法是运行 gear build然后mvn clean package所以我得到构建运行两次并且所有测试目标都满足并且战争部署在上游实例上,另外Cobertura报告在我的Jbehave测试中工作正常,但这是不优雅的,资源消耗的解决方案。

1 个答案:

答案 0 :(得分:1)

我在OpenShift中关于Maven的另一个问题“做我的家庭作业”时发现了这个问题 - 关于OpenShift在构建过程中如何使用Maven配置文件,广泛地说,是为了安装“自定义”第三个目标-party .war文件使用'jbossas'盒式磁带在应用程序中提供Liferay门户以及一些“模块”自定义。

虽然我的portal-gproj应用程序在其构建中没有使用Jenkins - 因为我预计它不会为Jenkins提供备用设备,最初可以使用三个“免费装备”。不过,它是一个可扩展的应用程序。但是,我找到了一个参考项目,作为Bill DeCoste的博客条目,至少提到了关于Jenkins的两个配置功能,就像在Jenkins中自定义OpenShift Maven构建一样:http://blog-judcon.rhcloud.com/?p=16总结一下,文章提到,关于Jenkins:一个“作业配置的构建/执行shell部分”。

虽然我自己并没有使用Jenkins,但是我已经看过它的使用,但是 - 我认为它在eXo Platform中使用过。我假设Jenkins会有一种基于Web的工作配置界面? (我倾向于将shell / filesystem接口改为Maven,个人而言)

或者,有OpenShift Origin Server source codeOpenShift Origin System Architecture Guide对应,就像参考 OpenShift Origin 基线一样,(我假设) OpenShift Online 正在Amazon EC2云的层中运行。 “如果所有其他方法都失败了,那就是源代码,”就像Red Hat,LOL这么多东西一样。似乎有jenkinsjenkins-client cartridges under OpenShift Origin。当然,任何一个墨盒所使用的过程的细节都可以从其源代码中看出来。

希望这有帮助!咖啡欢呼。