maven - 我可以将 maven 编译/打包和测试分成两个步骤,而无需不必要地重建 Artifact 吗?

标签 maven build

我有一个大型构建,其中测试有时会阻止创建 Artifact ,因为它们会因模块超时而停止或终止构建。我希望我的构建服务器:

  • 构建和发布 Artifact
  • 运行单元/集成测试

  • 目前,单元和集成测试在每个模块的测试和集成测试阶段以典型的 Maven 方式执行。这对开发人员来说非常有用,但存在构建不足的风险。构建服务器可以通过跳过测试轻松设置构建/发布步骤,我想运行一个仅测试测试,该测试通过仅运行测试的包阶段跳过进程资源。但是,我相当肯定 maven 将再次遍历之前的所有阶段。

    我想通过不必要地重建和重新打包我的 Artifact 来避免延长已经相当长的构建。

    有没有人像这样拆分 maven 构建,以便桌面开发人员从测试集成中受益,而构建服务器/持续集成系统从将有风险的测试推到流程结束时受益,所以我们总是产生 Artifact ?

    我是否试图以错误的方式分解构建,是否应该考虑在一系列较小的组件构建中更改单一的端到端构建?

    谢谢

    彼得

    最佳答案

    您可以这样做:

  • 您可以运行 maven 并跳过所有测试来安装/部署您的 Artifact
  • 然后你可以再次运行它,但这次只运行测试

  • 像这样:
    mvn install -DskipTests
    mvn surefire:test failsafe:integration-test
    

    如果您必须在一个命令行上完成所有这些操作,我相信您可以通过拥有两个配置文件来解决问题。一种跳过测试,一种只运行测试。

    关于maven - 我可以将 maven 编译/打包和测试分成两个步骤,而无需不必要地重建 Artifact 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16901043/

    相关文章:

    java - 如何共享 Maven 原型(prototype)?

    javascript - 使用 gulp 将外部库移动到 wwwroot 文件夹

    visual-studio - VS中平台和平台目标的区别

    build - 使用 PlatformIO 自动增加内部版本号

    build - 在 Docker 容器中编译 libsass

    JavaFX Maven 插件部署 .deb 而不是 .exe 文件

    java - 无法在 jar 中的 Maven 依赖项中找到要 Autowiring 的 bean,

    java - NetBeans 和 Maven 项目

    java - 在maven中指定依赖

    c - 如何列出静态库中带有 .o 扩展名的文件名