Azure DevOps Maven 任务配置文件

6

我在Azure DevOps Pipelines中使用Maven任务。我需要激活一个具体的profile,但是我不知道如何做到。我尝试在'options'和'goals'中传递profile,但都没有成功。请问如何正确地激活profile?

- 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”并未激活。


它可以运行,我错了。 - typik89
3个回答

7

我错了。如果您将个人资料(profile)传递给目标函数(goals),则可以正确激活该个人资料。

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

由于存在访问代理内部某些资源的问题,我无法看到激活结果,但这对于当前帖子并不重要。一切正常运行。

编辑:标志为大写字母P


我执行了 goals: 'clean install -P someprofile'。在 Maven 3 中,大写字母 P 是有效的。 - Tinkaal Gogoi
为Azure完成了Maven@3任务。 - user1207289
我还发现我必须以这种方式传递-D参数。尝试在mavenOpts中传递-D是不起作用的。 - djangofan

1
这是一个关于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'

-P(大写 P)在 goals 输入中,使您能够传递配置参数。

注意 jdkVersionOptionjdkArchitectureOptionmavenOptions 输入,它们对您的构建非常重要。


0
Azure DevOps的Maven任务配置文件
我对Maven不是很熟悉,所以我不确定激活配置文件的正确命令。
但是,使用Maven任务来激活配置文件就像在“goals”中使用命令行激活配置文件一样。
因此,要解决这个问题,您应该确保您可以使用命令行激活配置文件,然后在“goals”中使用相同的命令行。
您可以查看文档构建配置文件介绍获取更多详细信息:
mvn groupId:artifactId:goal -P profile-1

希望这可以帮到你。

1
生成的Maven命令日志是正确的。您可以运行并检查它。当然,我不会在一个命令中复制配置文件。这只是为了向您展示我尝试了不同的方法。如果我通过脚本任务执行相同的操作,一切都能正常工作。但我希望有机会通过标准的Maven任务来完成它。 - typik89
@typik89,能告诉我你的脚本任务是什么吗?你介意和我们分享一下吗?这样我就可以检查一下了。 - Leo Liu
1
对不起,我错了。它有效了!Maven任务成功激活了一个配置文件。 - typik89

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接