【问题标题】:Overriding openshift maven script (jenkins gear)覆盖openshift maven脚本(jenkins gear)
【发布时间】:2013-09-16 11:40:11
【问题描述】:

我在 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

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

编辑

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

【问题讨论】:

    标签: shell maven jenkins openshift


    【解决方案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 的界面? (我个人更喜欢 Maven 上的 shell/文件系统接口)

    另外,还有一个 OpenShift Origin Server source code 和一个 OpenShift Origin System Architecture Guide 对应,参考 OpenShift Origin 基线,(我假设)OpenShift Online 正在运行,在其位于 Amazon EC2 云的层中。 “如果一切都失败了,那就是源代码,”就像 Red Hat 的许多事情一样,LOL。好像jenkinsjenkins-clientcartridges under OpenShift Origin都有。当然,这些墨盒中的任何一个使用的过程的详细信息都可以从其源代码中看出。

    希望这会有所帮助!喝咖啡。

    【讨论】: