Scala/scoverage: 是否有必要进行干净的重建以发布用于发布的 jar?
Scala/scoverage: Is it necessary to make a clean rebuild for releasing a jar for publishing?
我使用 scoverage 报告我的 scala 代码库的覆盖率信息。我是 Java 堆栈的新手,但我曾在这样的环境中工作,在这种环境中,覆盖率构建与发布构建不同(通过将附加信息引入已编译的工件),并且后续的清理和重建步骤是必要的。
现在我不确定 scoverage scala 项目的情况如何。
所以:在 mvn scoverage:report
之后,我应该在 CI 服务器上 运行 在我的 mvn package
命令之前 mvn clean
吗?
当您运行使用 Maven 命令时(build、package、scoverage: report, etc.), 所有需要的中间信息都存储在 target
文件夹中(默认情况下,您可以根据需要更改此行为),并且不应影响任何其他阶段,除非它们被设计那样。
因此,如果您已描述,则不需要 运行 mvn clean
。生成的 jar
文件无论有没有清理都是一样的。
如果你想要一个 jar
文件并使用 SCoverage 检测 类,你可以使用 运行ning mvn scoverage:package
(check here) .即使你会 运行 以某种方式一个接一个地命令:
mvn clean
mvn scoverage:report
mvn scoverage:package
mvn package
最终您会在目标文件夹中获得两个 jar 文件:
app.jar
scoverage-app.jar
其中 app.jar
将没有任何覆盖信息。
如 scoverage-maven-plugin 文档中所述here:
We don't want to accidentally deploy these instrumented classes, so SCoverage keeps them separate. SCoverage does this by forking the current Maven build and running it again, while performing instrumentation.
因此,使用此分叉机制,已检测的 类 将保持分离。此外,在该文档中,您具有用 scoverage 测试替换正常单元测试执行所需的配置,因此您不必 运行 两次单元测试(并且仍然使用 [=18] 进行分叉的 scoverage 执行=]分开)。
这意味着你不应该要求再次运行清理,你可以在目标文件夹中检查scoverage 类单独存储在scoverage-类目录。
我使用 scoverage 报告我的 scala 代码库的覆盖率信息。我是 Java 堆栈的新手,但我曾在这样的环境中工作,在这种环境中,覆盖率构建与发布构建不同(通过将附加信息引入已编译的工件),并且后续的清理和重建步骤是必要的。
现在我不确定 scoverage scala 项目的情况如何。
所以:在 mvn scoverage:report
之后,我应该在 CI 服务器上 运行 在我的 mvn package
命令之前 mvn clean
吗?
当您运行使用 Maven 命令时(build、package、scoverage: report, etc.), 所有需要的中间信息都存储在 target
文件夹中(默认情况下,您可以根据需要更改此行为),并且不应影响任何其他阶段,除非它们被设计那样。
因此,如果您已描述,则不需要 运行 mvn clean
。生成的 jar
文件无论有没有清理都是一样的。
如果你想要一个 jar
文件并使用 SCoverage 检测 类,你可以使用 运行ning mvn scoverage:package
(check here) .即使你会 运行 以某种方式一个接一个地命令:
mvn clean
mvn scoverage:report
mvn scoverage:package
mvn package
最终您会在目标文件夹中获得两个 jar 文件:
app.jar
scoverage-app.jar
其中 app.jar
将没有任何覆盖信息。
如 scoverage-maven-plugin 文档中所述here:
We don't want to accidentally deploy these instrumented classes, so SCoverage keeps them separate. SCoverage does this by forking the current Maven build and running it again, while performing instrumentation.
因此,使用此分叉机制,已检测的 类 将保持分离。此外,在该文档中,您具有用 scoverage 测试替换正常单元测试执行所需的配置,因此您不必 运行 两次单元测试(并且仍然使用 [=18] 进行分叉的 scoverage 执行=]分开)。
这意味着你不应该要求再次运行清理,你可以在目标文件夹中检查scoverage 类单独存储在scoverage-类目录。