小编dan*_*war的帖子

我如何正确整合Maven,Jenkins,Sonar和Cobertura?

希望有人能提供帮助.

  • 我们的项目是一个Eclipse插件项目
  • 我们有一个Jenkins服务器
  • 我们的项目使用Maven和Tycho(用于插件项目)进行构建管理
  • 我们安装了Sonar服务器
  • 我们使用Jenkins Web-Config将Sonar集成到Jenkins中

现在,如果我们不使用声纳,一切都还可以.但是如果我们打开它,Sonar的Maven Cobertura插件会抛出错误.其他一切(就输出而言)是可以的.

现在,根据我的理解,发生以下情况:

  • 詹金斯建立了这个项目
  • Sonar使用其静态代码分析插件和指标(Findbugs,PMD,RFC等)
  • Sonar启动了Cobertura插件
  • Cobertura试图建立AGAIN项目
  • Cobertura没有成功构建它,因为它以不同的顺序构建它
  • Cobertura失败了

詹金斯的一些输出摘录:

[INFO] ------------------------------------------------------------------------
[INFO] Building Project
[INFO] ------------------------------------------------------------------------

[WARNING] The following dependencies could not be resolved at this point of the build but seem to be part of the reactor:

[WARNING] o de.tool.core:de.tool.core:eclipse-plugin:1.2.0-SNAPSHOT (provided)

[WARNING] Try running the build up to the lifecycle phase "package"
Run Code Online (Sandbox Code Playgroud)

后来......构建顺序是核心在进化之前构建,但进化似乎是Cobertura想要构建的第一件事......

[INFO]  Execute maven plugin cobertura-maven-plugin...
[INFO]  Execute org.codehaus.mojo:cobertura-maven-plugin:2.5:cobertura...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building de.tool.evolution 1.0.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] …
Run Code Online (Sandbox Code Playgroud)

continuous-integration cobertura maven jenkins sonarqube

13
推荐指数
1
解决办法
2万
查看次数

如何让Jenkins,Sonar和JaCoCo插件为Eclipse Tycho插件项目(或者Cobertura)一起工作?

我的设置是:

  • 詹金斯1.448
  • 声纳2.13
  • 詹金斯声纳插件1.72
  • Sonar的MySql数据库

我有以下项目:

  • Eclipse插件项目
  • 使用Maven
  • 多个模块(父maven项目,源插件项目,测试片段项目)
  • 一个简单的JUnit测试,测试一个源插件项目的类

目前的流程是什么:

  • Jenkins从SVN中检出父项目
  • Jenkins使用Maven和Tycho构建项目及其模块
  • Jenkins使用Surefire执行测试并生成报告
  • Jenkins使用Jenkins Sonar插件启动mvn sonar:sonar来执行代码分析
  • 对每个模块进行静态代码分析
  • JaCoCo失败了

Sonar具有可用的静态代码分析统计信息,并显示测试成功百分比.唯一缺少的是JaCoCo的代码覆盖......甚至可能是Cobertura的代码覆盖率.

我现在并不在乎,我只想要其中一个产生代码覆盖率的结果.

Cobertura似乎无法产生结果,可能是因为它无法检测代码 - 它在错误的位置查找已检测的代码 - 它无法应对Tycho或单独的源/测试代码设置

JaCoCo应该能够"动态"观察代码覆盖率,但其输出是

[INFO] [17:44:04.708] Sensor JaCoCoSensor...
[INFO] [17:44:04.717] Project coverage is set to 0% as no JaCoCo execution data has been dumped: /var/lib/jenkins/jobs/testPlugin/workspace/testSource/target/jacoco.exec
[INFO] [17:44:04.854] Sensor JaCoCoSensor done: 146 ms

[INFO] [17:44:10.587] Sensor JaCoCoSensor...
[INFO] [17:44:10.587] Project coverage is set to 0% as no JaCoCo execution data has been dumped: /var/lib/jenkins/jobs/testPlugin/workspace/testTest/target/jacoco.exec
[INFO] [17:44:10.631] Sensor JaCoCoSensor …
Run Code Online (Sandbox Code Playgroud)

cobertura tycho jenkins jacoco sonarqube

8
推荐指数
1
解决办法
9069
查看次数

Jenkins:如何在不删除第一个存储库的情况下将两个存储库URL检出到同一个工作空间中?

我们的项目结构已被拆分.一方面,/ plugins文件夹包含所有主要插件项目.另一方面,我们有一个/ tests文件夹,其中包含所有片段项目,这些项目是相应主插件项目的单元测试.

Jenkins让我查看多个存储库,甚至是工作区中的同一个文件夹.

问题是签出第二个URL时会删除第一个结帐.

/ plugins放在工作区目录中,然后工作区目录被"清理":

Cleaning local Directory .
Run Code Online (Sandbox Code Playgroud)

然后签出第二个目录/ tests.

当然我希望两个文件夹内容都放在同一个工作区目录中.我怎样才能做到这一点?

eclipse jenkins

6
推荐指数
1
解决办法
7965
查看次数

如何在不影响功能性的情况下将大型 Jenkins 工作/项目拆分为较小的工作?

我们正在努力改进 Jenkins 设置。到目前为止我们有两个目录:/plugins 和/tests。

我们的项目是 Eclipse Plugins 的多模块项目。/tests 文件夹中的测试插件是片段项目,依赖于 /plugins 中相应的生产代码插件。

到目前为止,我们只有一项 Jenkins 工作,它检查 /plugins 和 /tests,构建所有这些并生成 Surefire 结果等。

我们现在正在考虑将项目拆分为与我们提供的功能相对应的更小的作业。看来我们尝试的方法并不是最理想的。

我们尝试了以下方法:

  1. 我们为核心功能创建了一个工作。此作业检查整个 /plugins 和 /tests 目录,并且仅构建该功能所包含的插件。该作业有一个单独的 pom.xml,它定义了核心工件并说明了该功能中包含的模块。
  2. 我们为应该在功能插件上运行的测试创建了一个单独的作业。此作业使用核心作业中克隆的工作区。该作业将在构建核心功能后运行。

我以某种方式认为这不是最佳的。

  • 例如,只有核心作业可以更新签出的文件。如果只更新测试,核心功能不需要重新构建,但它会。
  • 一旦我有一个依赖于核心功能的功能,这个功能要么需要使用核心功能工作区的克隆,要么检查它自己的 /plugins 和 /tests 副本,这会导致膨胀。
  • 使用克隆的工作区,我无法更新我的源。因此,当我的一个功能依赖于另一个功能时,只有更新和构建核心功能,我才能完成这项工作。

我想我在这里缺少一些基本的东西。有人可以帮忙吗?肯定有一种更简单的方法。

编辑:我将尝试制定我认为如果一切正常的话理想情况下会发生的情况:

  • 检查功能组件是否已更改(即可以对其进行更新)
  • 如果更改,则构建该功能
    • 如有必要,构建依赖功能(即检查 ob 相应的作业)
    • 构建功能本身
    • 如果构建成功,则开始功能测试作业
    • 让我看看功能作业中测试作业的结果

最后,项目工作应该

  • 每晚进行一次构建
  • 查看 /plugins 和 /tests 中的所有源
  • 构建全部,测试全部,将结果发送到 Sonar

此外,如果不需要夜间构建,那就太好了,因为项目功能的构建和测试结果将合并在项目作业结果中。

这样的事情可能吗?

build-automation eclipse-pde tycho maven jenkins

5
推荐指数
1
解决办法
1926
查看次数

如何使用Eclipse,Maven和Jenkins管理第三方jar依赖?

我们正在尝试管理由多个Eclipse插件组成的项目.

一个插件依赖于第三方插件.它从名为bpmn2的库中导入一个类.该库是一个jar文件,不包含在Maven远程存储库中.

在本地,在Eclipse中,我们将库检出到工作空间中,并在Eclipse项目的类路径中引用.插件清单未明确声明对bpmn2的依赖性.哪个在本地工作......

我们尝试使用Jenkins进行持续集成.Multi-Plug-in-Project使用Maven和多个POM文件使用Maven tycho插件进行管理.

问题是Maven并不关心本地存在的库bpmn2(当然).所以我们认为使用Maven install:install将bpmn2安装到本地Maven资源库

./mvn install:install-file -Dfile=/home/someUser/bpmn2/org.eclipse.bpmn2_0.7.0.201111021300.jar -DgroupId=org.eclipse.bpmn2 -DartifactId=bpmn2 -Dversion=0.7.0 -Dpackaging=jar -DlocalRepositoryPath=/var/lib/jenkins/localRep/ 
Run Code Online (Sandbox Code Playgroud)

并使用库的依赖项来调整相应的POM

<dependencies>
    <dependency>
      <groupId>org.eclipse.bpmn2</groupId>
      <artifactId>bpmn2</artifactId>
      <version>0.7.0</version>
      <type>jar</type>
    </dependency> 
  </dependencies>
Run Code Online (Sandbox Code Playgroud)

会工作.但事实并非如此.

Maven的输出是:

[ERROR] Cannot resolve project dependencies:
[ERROR]   Software being installed: modeltype.bpmn2 1.0.0.qualifier
[ERROR]   Missing requirement: modeltype.bpmn2 1.0.0.qualifier requires 'bundle org.eclipse.bpmn2 0.7.0' but it could not be found
[ERROR] 
Run Code Online (Sandbox Code Playgroud)

问题是:

我们怎样才能更好地整合第三方图书馆?我认为,本地类路径引用不是更好图像的最佳解决方案.是否每个为项目开发的人都应该安装bpmn2库并且只使用清单中的依赖项?

我们在Maven做错了什么?本地存储库是

/var/lib/jenkins/localRep
Run Code Online (Sandbox Code Playgroud)

在将库安装到存储库之后,似乎创建的目录结构没问题.

/org/eclipse/bpmn2/bpmn2/0.7.0/bpmn2-0.7.0.jar
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?

eclipse eclipse-plugin maven jenkins

3
推荐指数
2
解决办法
5037
查看次数