希望有人能提供帮助.
现在,如果我们不使用声纳,一切都还可以.但是如果我们打开它,Sonar的Maven 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) 我的设置是:
我有以下项目:
目前的流程是什么:
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) 我们的项目结构已被拆分.一方面,/ plugins文件夹包含所有主要插件项目.另一方面,我们有一个/ tests文件夹,其中包含所有片段项目,这些项目是相应主插件项目的单元测试.
Jenkins让我查看多个存储库,甚至是工作区中的同一个文件夹.
问题是签出第二个URL时会删除第一个结帐.
/ plugins放在工作区目录中,然后工作区目录被"清理":
Cleaning local Directory .
Run Code Online (Sandbox Code Playgroud)
然后签出第二个目录/ tests.
当然我希望两个文件夹内容都放在同一个工作区目录中.我怎样才能做到这一点?
我们正在努力改进 Jenkins 设置。到目前为止我们有两个目录:/plugins 和/tests。
我们的项目是 Eclipse Plugins 的多模块项目。/tests 文件夹中的测试插件是片段项目,依赖于 /plugins 中相应的生产代码插件。
到目前为止,我们只有一项 Jenkins 工作,它检查 /plugins 和 /tests,构建所有这些并生成 Surefire 结果等。
我们现在正在考虑将项目拆分为与我们提供的功能相对应的更小的作业。看来我们尝试的方法并不是最理想的。
我们尝试了以下方法:
我以某种方式认为这不是最佳的。
我想我在这里缺少一些基本的东西。有人可以帮忙吗?肯定有一种更简单的方法。
编辑:我将尝试制定我认为如果一切正常的话理想情况下会发生的情况:
最后,项目工作应该
此外,如果不需要夜间构建,那就太好了,因为项目功能的构建和测试结果将合并在项目作业结果中。
这样的事情可能吗?
我们正在尝试管理由多个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)
有人可以帮忙吗?