我需要使用設定檔案(用于解決來自內部存盤庫的一些依賴項)在 Azure dev-ops 管道中運行 maven 任務。我可以使用“DownloadSecureFile@1”任務獲取檔案,然后可以將其復制到默認作業目錄。在 bash 任務中,我可以使用
mvn -s settings.xml verify
但是我需要使用“Maven@3”任務運行 maven 目標(測驗覆寫率和 SonarQube 分析配置是用它完成的)。如果我指定設定引數
- task: Maven@3
displayName: Build and run tests
inputs:
mavenPomFile: "pom.xml"
# mavenOptions: "-s settings.xml -Xmx512m $(MAVEN_OPTS)"
mavenOptions: "-Xmx512m $(MAVEN_OPTS) --settings settings.xml"
javaHomeOption: "JDKVersion"
jdkVersionOption: "1.11"
jdkArchitectureOption: "x64"
publishJUnitResults: false
goals: "verify"
sonarQubeRunAnalysis: true
(MAVEN_OPTS 只是一個使用 -Dmaven.repo.local 定義本地倉庫的變數)任務失敗并出現以下錯誤:

Maven 已安裝,如果沒有設定引數,它將失敗,因為它無法決議依賴項。如果我使用“-s”而不是“--settings”,也會發生同樣的事情。
使用“ArtifactoryMaven@2”任務我能夠執行目標,但它似乎沒有“Maven@3”任務的所有選項,我不知道如何讓它使用用于快取依賴項的特定存盤庫。
uj5u.com熱心網友回復:
從您的任務定義中,您定義了-s settings.xmlat mavenOptions欄位。
這是這個問題的根本原因。
您需要在選項欄位中定義 settings.xml。
例如:options: '-s settings.xml'
- task: Maven@3
displayName: Build and run tests
inputs:
mavenPomFile: "pom.xml"
options: '-s settings.xml'
mavenOptions: "-Xmx512m $(MAVEN_OPTS)"
javaHomeOption: "JDKVersion"
jdkVersionOption: "1.11"
jdkArchitectureOption: "x64"
publishJUnitResults: false
goals: "verify"
sonarQubeRunAnalysis: true
參考檔案:Maven 任務
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/488031.html
標籤:天蓝色 行家 天蓝色的devops 天蓝色管道 行家设置
上一篇:在Jenkins上構建時找不到所需的類org/apache/commons/lang3/ArrayUtils
下一篇:NoClassDefFoundError:org/apache/kafka/common/serialization/StringDeserializer
