- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们正在开发一个遗留项目,第一个任务是为其设置 DevOps。重要的是我们对这个领域还很陌生。
我们最初计划使用 jenkins 和 sonarqube 来实现此目的。让我从要求开始。
例如:该项目被分割为5个多模块maven项目, 说 A、B、C、D 和 E
1. A and C are completely independent and can be easly built
2. B depends on the artifact generated by A (jar) and has multiple maven profiles (say tomcat and websphere, it is a webservice module)
3. D depends on the artifact generated by C
4. E depends on A, B and D and has multiple maven profiles (say tomcat and websphere, it is a web project)
根据 jenkins 文档来处理这种情况,我们正在考虑使用“参数化构建插件”和“扩展选择参数插件”进行参数化构建,在这些插件的帮助下,我们能够参数化配置文件名称。但在每次构建之前,构建器等待配置文件参数。
所以我们仍在寻找一个好的解决方案
1. keep the dependency between projects an built the whole projects if there is any change in SCM (SVN). For that we are used "Build whenever a SNAPSHOT dependency is built" and "SCM polling option". Unfortunately this option seems not working in our case (we have given an interval of 5 min for scm polling but no build is happening based on test commits)
2. Even though we are able to parameterize the profile, this seems as a manual step (is there an option to automate this part too, ie. build with tomcat profile and websphere profile should happen sequentially).
我们正在努力寻找满足所有这些核心要求的解决方案。任何指针将不胜感激。
谢谢,桑
最佳答案
我的 Maven 知识有限,但是由于您还没有得到任何回复,我会尝试提供一些一般性建议。
通常有多种方法可以在 Jenkins 中实现某个目标,每种方法都有其优点和缺点。选择最合适的解决方案取决于具体要求和您的环境/设置。
但是,您首先需要一些可以正常工作的东西,然后您可以对其进行改进。
通过以下操作可以快速得到结果
- Configure your subversion repo (Multiple are possible) to be checked out into your workspace
- Enable Poll SCM trigger
- Build your modules/projects via Execute shell build steps. (Failed builds can be handed to the job result by using
Exit 1
on aExecute shell
Build step.)
但是请记住,这将阻止每个项目/模块的高级功能,例如向开发人员发送邮件通知。或指标趋势,例如警告或静态代码分析。
以下解决方案更容易朝该方向扩展。
- Use Build step Trigger/call builds on other projects to build
A
, archive needed artifacts- Use Build step Trigger/call builds on other projects with some parameter
tomcat
to buildB tomcat
version, use Copy Artifact Plugin to copy over jar fromA
- ...
- Use Build step Trigger/call builds on other projects with some parameter
tomcat
to buildE tomcat
version. Use Copy Artifact Plugin to copy all needed artifacts, you can specify parameter there if you need artifact of i.e.B tomcat
version
在此设置中,监视 svn 是一个问题,因为如果您通过轮询 SCM 触发它,它将在您的包装器工作区中 check out 它,而您实际上并不需要在那里 check out 它,而是在您的构建作业中 check out 它。
可能的解决方案:在包装器作业和构建作业之间共享工作区,因此构建作业中的重复 checkout 将找到已处于正确版本中的文件。但是,您*需要+确保下游作业在同一台机器上执行(有插件可以做到这一点)
或者更优雅:在 svn 上使用 post-commit 钩子(Hook)(参见 here,Post-comit 钩子(Hook)部分)来通知 jenkins 更改。
编辑:对于 future ,值得研究 Pipeline Plugin及其 documentation对于更复杂的构建,这是即将推出的 jenkins 版本 2.0 的引擎,请参阅 here .
关于java - Jenkins 和 Maven 配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36187000/
我需要安装一个 VPN 配置文件,以后可以在没有用户干预的情况下进行更改。直接的方法是安装 VPN 配置文件,然后安装 MDM 配置文件,以便以后可以更改配置。 但是,我的要求仅与 VPN 配置有关,
配置文件 全局配置文件hibernate.cfg.xml hibernate.cfg.xml --> com.mysql.cj
我想知道有没有一种方法可以设置配置,我可以有两个数据库条目,当环境是本地时和在服务器上时都可以工作。 我很久以前就通过代码进行切换时遇到了一个解决方案。现在无法找到它。你们是怎么做到的? 最佳答案 我
通常我总能在 Stack Overflow 上找到我要找的东西。但是这次我真的难住了。 我已经阅读了针对遇到类似问题的人的其他 Stack Overflow 回复;但无济于事。 (我认为其中一部分原因
我是 Hadoop 新手。我正在尝试设置单节点集群。 我注意到在我读过的文档中(甚至在 Apache 的配置站点上)它总是引用 conf/目录中的配置文件。但是,当我下载 2.X.X 版时,我只能在
好吧,我之前发布了如何读取其他程序的其他配置文件(这里是链接 Previous Post 。我设法做到了。但是现在还有另一个问题。场景是这样的,我有两个程序。程序 A 从配置文件中读取其配置,程序 B
【全局(系统)配置文件】 复制代码 代码如下: /etc/crontab Linux 主要的配置文件都在 etc 目录下。 复制代码
Apache HBase配置文件 本节是本章内容的开篇,我们首先来认识Apache HBase中有哪些需要的配置文件! Apache HBase使用与Apache Hadoop相同的配置系统。所有
我想了解如何为我们的实验构建配置文件 让我们以 AllenNLP 文档中的这个例子为例 training and prediction 特别是这个片段 我们从哪里得到“token_embedders”
我正在研究 MAVEN 配置文件,我有一个关于使用变量设置属性的问题。目前,我正在使用以下配置: Action type D restriction actionTy
我知道以前可能有人问过这个问题,但我似乎无法为我找到正确的答案。 我有一个名为 的 Windows 服务foobar.exe .我有一个名为 的应用程序配置文件foobar.exe.confi
我使用 FitNesse 作为功能测试框架。当 FitNesse 运行需要配置的代码时,我遇到了麻烦。 如果我需要从配置文件中获取连接字符串,我可以通过将它添加到 FitServer.exe.conf
我对我的 Jenkins 输出感到有些困惑。 关于 Jenkins 的工作:(在底部缩短了 pom.xml) mvn deploy -Pprofile1 我所有的插件将运行 4 次: 父/pom.xm
我偶尔会遇到一个问题,即为设备配置开发版本的应用程序。错误消息通常是“找不到此可执行文件的有效配置文件”。 我已遵循所有 Apple 说明:我拥有有效的开发证书,开发人员配置文件包含相关设备的设备 I
我正在尝试在 F# 控制台应用程序中使用 NLog,我已设法使用 App.config 中的配置部分使其工作,但无法使用独立的 NLog.config 文件使其工作。我的 NLog.config 文件
有没有办法像在 rubocop 中一样使用配置文件禁用 puppet-lint 中的检查?配置文件应该是txt文件、json文件还是其他格式? 最佳答案 是的,该文件名为 .puppet-lint.r
我有多个网站,它们都具有相同的代码,但应用程序设置不同。我想将我的应用程序设置放在位于虚拟目录中的单独配置文件中。这将允许我在所有站点之间共享所有代码的单个副本,每个站点具有不同的虚拟目录。 不幸的是
我在 Ubuntu 上使用 ghci 6.8.2。 ghci 是否使用配置文件来进行一些初始设置?例如::设置提示符“ghci>”。 最佳答案 您是否尝试过将 :set Prompt "ghci> "
我继承了一个运行 JBoss 7.x 服务器、java 后端等单个实例的项目。我对 JBoss 完全陌生,我对文件结构的配置感到好奇),我必须拥有什么以及在哪里。 documentation其结构与我
我有一个关于 Android 的问题。我只需要在开始时运行其中一项 Activity 一次。因此,通常最好的解决方案是创建包含标志 isFirstRun 的文件并在应用程序启动后检查该值。 但在我的应
我是一名优秀的程序员,十分优秀!