【问题标题】:Azure DevOps maven task profileAzure DevOps maven 任务配置文件
【发布时间】:2023-04-04 14:35:01
【问题描述】:

我在 Azure DevOps Pipelines 中使用 Maven 任务。我需要激活一个具体的配置文件,但我不明白该怎么做。我尝试在“选项”和“目标”中传递个人资料,但它不起作用。如何正确激活个人资料?

- task: Maven@3
  displayName: maven_project_profile
  inputs:
    mavenPomFile: 'my_project/pom.xml'
    options: '-DskipTests=true -P someprofile'
    goals: 'clean deploy -p someprofile'
    publishJUnitResults: true
    testResultsFiles: '**/surefire-reports/TEST-*.xml'
    testRunTitle: 'fixBypassService'
    javaHomeOption: 'JDKVersion'
    jdkVersionOption: '1.8'
    mavenVersionOption: 'Default'
    mavenAuthenticateFeed: false
    effectivePomSkip: false
    sonarQubeRunAnalysis: false

我可以在日志中看到:

2020-01-13T08:45:13.1695224Z [command]/usr/share/apache-maven-3.6.2/bin/mvn -f /home/vsts/work/1/s/my_project/pom.xml -DskipTests=true -P someprofile clean deploy -P someprofile

但配置文件“someprofile”实际上并未激活。

【问题讨论】:

  • 有效,我错了

标签: java maven azure-devops continuous-integration


【解决方案1】:

我错了。如果您传递配置文件,则配置文件将被正确激活,例如目标:

- task: Maven@3
  displayName: maven_project_profile
  inputs:
    mavenPomFile: 'my_project/pom.xml'
    goals: 'clean deploy -P someprofile'

我看不到激活结果,因为在访问代理内部的某些资源时存在问题,但这对于当前帖子而言无关紧要。 一切正常。

编辑:标志是大写P

【讨论】:

  • 我做了goals: 'clean install -P someprofile'。大写P为maven 3工作。
  • Maven@3 任务在天蓝色工作
【解决方案2】:

Azure DevOps maven 任务配置文件

我对 maven 不是很熟悉,所以我不确定激活配置文件的正确命令。

但是,使用 Maven 任务激活配置文件就像使用 goals 中的命令行激活配置文件一样。

因此,要解决此问题,您应该确保可以使用命令行激活配置文件,然后在 goals 中使用相同的命令行。

您可以查看文档Introduction to Build Profiles 了解更多详情:

mvn groupId:artifactId:goal -P profile-1

希望这会有所帮助。

【讨论】:

  • 日志中生成的maven命令是正确的。您可以运行并检查它。当然,我不会在一个命令中复制配置文件。这只是为了向你展示我尝试了不同的方法。如果我通过脚本任务执行相同操作,则一切正常。但我想有机会通过标准的 maven 任务来做到这一点
  • @typik89,我可以知道你的脚本任务,你介意分享给我们吗?这样我就可以检查了。
  • 对不起,我错了。有用! Maven 任务正确激活配置文件
  • @我很高兴您已经解决了您的问题。既然你已经解决了,你介意分享一下这个问题的一些状态作为答案吗,这可能有利于其他社区成员阅读答案,避免在已经有答案的帖子上花费大量时间。谢谢。
【解决方案3】:

这是Maven@3 任务的工作示例:

      - task: Maven@3
        inputs:            
          mavenPomFile: 'pom.xml'
          mavenOptions: '-Xmx3072m'
          javaHomeOption: 'JDKVersion'
          jdkVersionOption: '1.11'
          jdkArchitectureOption: 'x64'
          publishJUnitResults: true
          mavenAuthenticateFeed: true
          goals: 'clean package -Pprod'

goals 输入中的-P(大写 p)让您可以传递配置文件参数。

并注意jdkVersionOptionjdkArchitectureOptionmavenOptions 输入,它们在您的构建中可能非常重要。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-07
    • 1970-01-01
    • 2020-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多