小编Jar*_*red的帖子

仅在成功进行单元测试后,Maven多模块才会部署到存储库

问题:执行'mvn deploy'的最佳解决方案是什么,以便部署部分仅在所有单元测试成功并且没有重复处理步骤后运行?

我希望简单的答案是:执行maven命令'x'(或使用标志),这样可以在不调用默认生命周期中的先前目标的情况下运行部署.

可悲的是,这似乎没有一个简单的答案.我已经在我到目前为止的路径中包含了详细信息.

我们有以下三个要求:

  • 执行maven部署目标以将所有多模块工件部署到远程存储库.
  • 仅在所有项目的所有单元测试通过时才进行部署.
  • 不要重复任何处理.

我们从简单的"mvn clean deploy"开始,但是我们注意到了几个问题:

  • 构建将在完成所有单元测试之前停止::所以我们添加了--fail-at-end标志
  • 部署目标将针对任何成功的模块执行.

这导致"损坏"状态,其中远程存储库可能仅具有部分部署(如果在构建中稍后存在具有故障的模块).

我们看了3种不同的解决方案:

  1. 在部署之前暂存工件::这被认为对于完全自动化的过程来说太重了.
  2. 使用配置文件覆盖默认生命周期,以便'mvn deploy -Pci-deploy'可以在不调用任何先前目标的情况下运行::这种方法很有效,而且速度很快,但显然是一种非传统的方法.
  3. 只需运行'mvn clean package',然后只有成功执行'mvn deploy'::这似乎有效,并且在调用目标时似乎只会受到轻微打击(尽管其中一些非常聪明,不能重新处理未更改的工作空间) )

我向社群提出了这个问题,并提供了我提供的背景细节,以确定是否有更好的方法或强烈的意见(可能)提出以下请求之一:

  • 一个新的部署目标,可以与所有其他生命周期目标分开运行,并期望:所有先前的步骤已经运行,并且它将执行与"mvn deploy"相同的部署
  • 部署目标中的标志将有效地禁用先前的目标.

开箱即用,绝对违反当前的惯例:

  • 一个标志,告诉maven在继续之前运行所有模块的[unit]测试目标.

笔记:

  • 我们正在使用Jenkins,但出于这个问题的目的,CI环境并不复杂.
  • 我尝试了'mvn deploy:deploy'目标,但它有一些不明确的错误.
  • 我没有考虑将集成测试作为要求的一部分.

2013年8月20日更新

我测试了延迟部署插件并确定该工具按预期工作,但是很长时间.

对于我们的代码库:

  • mvn clean deploy:用于在2:44执行的所有目标
  • mvn clean install'deferred-deploy-plugin':用于15分钟内执行的所有目标
  • mvn清洁包; mvn deploy -Pci-deploy自定义构建配置文件,禁用先前执行的目标:
    • 所有目标(包括部署):4:30
    • 仅部署:1:45
  • mvn清洁包; mvn在执行的同一工作区上部署-Dmaven.test.skip = true:
    • 所有目标(包括部署):4:40
    • 仅部署:1:54

除了延迟部署之后,部署跳过测试的干净程序包运行得更快,并且在测试成功之后实现了延迟部署的愿望.

部署生命周期执行时并且退出前面的每个目标(进程,编译,测试,包等)似乎有一点时间.然而,唯一的选择是破解非标准执行,只能节省10秒.

deployment unit-testing maven

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

升级到SonarQube 4.2后收到"未授权"错误

使用Maven Sonar插件执行声纳分析时:

  1. 除了从SonarQube 3.7升级到4.2之外,没有任何其他更改
  2. 我们收到以下错误:

    [ERROR] Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:2.2:sonar (default- cli) on project museum-mobile: Can not execute SonarQube analysis: Not authorized. Please check the properties sonar.login and sonar.password. -> [Help 1]

  3. 我们的帐户仍被列为"声纳管理员",可以完全访问所有全局权限:管理质量配置文件,管理系统,执行分析,执行预览分析,配置项目,共享仪表板和过滤器

  4. 当我们使用默认的"admin"帐户运行时,我们可以执行分析.

环境:

  • Windows 7 64位
  • Java JDK 1.6.0_31和1.7.0_25
  • Maven 3.0.5
  • sonar-maven-plugin 2.0和2.3

JIRA开业:MSONAR-66

sonarqube

3
推荐指数
1
解决办法
9350
查看次数

标签 统计

deployment ×1

maven ×1

sonarqube ×1

unit-testing ×1