我正在尝试从命令行配置JaCoCo maven插件,而不是使用pom.xml
。到目前为止,我已经设法使用命令执行准备代理
:
mvn -X -Djacoco.destFile=./coverage/jacoco.exec clean org.jacoco:jacoco-maven-plugin:prepare-agent install
输出:
[DEBUG] Configuring mojo org.jacoco:jacoco-maven-plugin:0.7.6.201602180812:prepare-agent from plugin realm ClassRealm[plugin>org.jacoco:jacoco-maven-plugin:0.7.6.201602180812, parent: sun.misc.Launcher$AppClassLoader@70dea4e]
[DEBUG] Configuring mojo 'org.jacoco:jacoco-maven-plugin:0.7.6.201602180812:prepare-agent' with basic configurator -->
[DEBUG] (f) destFile = /src/coverage/jacoco.exec
...
这将创建 ./coverage/jaco.exec
文件,现在我正在尝试运行报告
阶段,但我无法为此阶段设置属性。我正在运行命令:
mvn -X -Djacoco.dataFile=./coverage/jacoco.exec -Djacoco.outputDirectory=./jacoco_ut org.jacoco:jacoco-maven-plugin:report
或
mvn -X -DdataFile=./coverage/jacoco.exec -DoutputDirectory=./jacoco_ut org.jacoco:jacoco-maven-plugin:report
与jacoco:report中一样,没有用户属性
与jacoco:prepare代理中相同。
我有这样的输出:
[DEBUG] Configuring mojo 'org.jacoco:jacoco-maven-plugin:0.7.6.201602180812:report' with basic configurator -->
[DEBUG] (f) dataFile = /src/target/jacoco.exec
[DEBUG] (f) outputDirectory = /src/target/site/jacoco
[DEBUG] (f) outputEncoding = UTF-8
[DEBUG] (f) project = MavenProject: project:3.2.0-SNAPSHOT @ /src/pom.xml
[DEBUG] (f) skip = false
[DEBUG] (f) sourceEncoding = UTF-8
[DEBUG] -- end configuration --
使用默认值。
我们使用以下代码:
mvn clean devtestcov:atest -Dactive.devtest -Dmaven.test.failure.ignore=true -Djacoco-agent.destfile=target/jacoco.exec
当不能使用此属性时,可以使用环境变量。
当我得到Jacoco Diff Coverage Jacoco:报告包括不能使用属性。
所以我使用 ${inc_files}
外壳:
echo "+++git diff+++"
inc_files=`git diff --name-only master | grep -oP 'com/languoguang/xxclouds/quark.*.java' | xargs | sed 's/.java/.class/g' | xargs | sed -e 's/ /,/g'`;
echo ${inc_files};
echo "---git diff---";
echo "+++maven test jacoco+++";
mvn -B -f pom.xml -Dinc_files=${inc_files} clean test -Dmaven.test.failure.ignore=true;
echo "---maven test jacoco---";
pom.xml:
<execution>
<configuration>
<title>quark-frameworks-coverage-inc</title>
<outputDirectory>${project.reporting.outputDirectory}/jacoco-aggregate/jacoco-aggregate-inc/</outputDirectory>
<includes>${inc_files}</includes>
</configuration>
<id>report-aggregate-inc</id>
<phase>test</phase>
<goals>
<goal>report-aggregate</goal>
</goals>
</execution>
我希望这将是有用的。
GitHub 问题 322 已从 0.7.8 版的 jaco-maven 插件
开始解决。从此版本开始,您可以使用用户属性 jaco.dataFile
,因此问题中的命令将按原样工作。
要在命令行上强制执行版本,您应该具有:
mvn -Djacoco.destFile=./coverage/jacoco.exec clean org.jacoco:jacoco-maven-plugin:0.7.8:prepare-agent install
您还可以在POM中配置Jacoco-maven-plugin
并显式指定此版本。
在版本0.7.8之前,dataFile
属性没有用户属性,因此您将无法这样做。调用时,您正确地覆盖了默认值
mvn -Djacoco.destFile=./coverage/jacoco.exec clean org.jacoco:jacoco-maven-plugin:prepare-agent install
因为 jaco.dest 文件
是与准备代理
目标的 destFile
属性关联的用户属性的名称。
但是,报告
目标的相应数据文件
属性没有用户属性。所以你最好的选择是保持默认值。
问题内容: 是否可以从命令行安装jenkins插件? 我在谷歌搜索后找到了一个命令: 但这不起作用。 问题答案: 根据Jenkins 命令行界面文档,您需要使用 客户端 JAR文件(而不是正在使用的 服务器 WAR文件),您可以直接从Jenkins获得该文件,例如,通过http:// localhost:8080 / cli 然后,您可以使用以下JAR运行命令: 这将下载安装所需的插件及其任何依赖
有没有从命令行安装jenkins插件的选项? 我在谷歌搜索后发现了一个命令: 但它不起作用。
问题内容: 在pom.xml中,我有这样的声明 有什么办法可以从命令行关闭它吗? 我知道我可以将其提取到个人资料中,但这不是我想要的。 问题答案: 可以通过将属性设置为true [ 1 ] 来跳过Javadoc的生成,即 (不是假的)
问题内容: 我有一个配置了执行的插件(antrun),该插件具有一个id,并且未绑定到任何阶段。我可以直接从命令行执行此执行吗? 用以下命令运行它: 或者至少 问题答案: 133 此功能已实现为MNG-5768,并且在Maven 3.3.1中可用。 更改将: 扩展直接插件调用语法,以允许可选的@ execution-id参数,例如org.apache.maven.plugins:maven-rem
问题内容: 我的Maven设置文件 〜/ .m2 / settings.xml中* 默认激活了 一个配置文件。 * 是否可以通过执行以下操作从命令行停用它: 问题答案: 是的,的确,您有正确的方法。从Maven配置文件用户指南 停用个人资料 从Maven 2.0.10开始,可以使用命令行停用一个或多个配置文件,方法是在其标识符前面加上字符’!’。或“-”,如下所示: 这可用于停用标记为active
问题内容: 有没有一种方法可以在没有用户/密码的情况下从命令行重设所有(或只是禁用安全性设置),因为我设法完全将自己锁定在外面? 问题答案: 最简单的解决方案是完全禁用安全-变化给在文件中。 然后只需重新启动詹金斯, 然后转到管理面板并再次设置所有内容。 如果您是从docker在k8s pod中运行Jenkins,这是我的情况,并且无法运行命令,那么您可以通过删除pod来重新启动Jenkins: