shell - 覆盖 openshift maven 脚本(jenkins gear)

标签 shell maven jenkins openshift

我在 Openshift 上有 Jenkins 实例

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

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

# Build/update libs and run user pre_build and build
gear build

上面的命令触发这样的 Action

+ 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 但没有更新最后成功的 Artifact ,日志显示

[警告] 无法激活请求的配置文件“openshfit”,因为它不存在

我的 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 所以我让构建运行了两次,所有测试目标都达到了,war 部署在上游实例上,另外 Cobertura 报告在我的 Jbehave 测试中运行良好但这是一种不优雅、耗费资源的解决方案。

最佳答案

我在“做作业”时发现了这个关于 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/文件系统接口(interface))

或者,有 OpenShift Origin Server source code , 和一个 OpenShift Origin System Architecture Guide相应的,如引用 OpenShift Origin 基线,(我假设)OpenShift Online 在其上运行,位于 Amazon EC2 云上的层中。 “如果一切都失败了,那就是源代码,”就像 Red Hat 的许多事情一样,大声笑。好像还有jenkinsjenkins-client cartridges under OpenShift Origin .当然,这些墨盒中的任何一个所使用的过程的细节都可以从其源代码中看出。

希望对您有所帮助!咖啡干杯。

关于shell - 覆盖 openshift maven 脚本(jenkins gear),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18827057/

相关文章:

bash - 仅当“git diff”输出某些内容时,如何运行另一个 git 命令?

linux - 如何获取一组后台命令的正确PID并杀死它?

java - Javac + Lombok 阶段后如何使用 AspectJ Maven 进行二进制编织

java - Hibernate NoSuchMethodError in Byte buddy 构建 session 工厂时

java - @ExceptionHandler 响应在 Tomcat 中不起作用

Jenkins 配置因系统用户异常而恢复

security - 如何设置 Jenkins Slave 权限

shell - 插入 Vim 函数参数和 shell 命令

json - 无法在 shell 脚本中使用 jq 获取 JSON 数组值

jenkins - PR 合并意味着什么?