Maven 在 Azure Pipelines 中使用与本地不同的存储库

问题描述 投票:0回答:2

我有一个项目在 Azure Pipelines 中

mvn package
失败,即使同一个分支在本地成功构建也是如此。问题是缺少依赖项。

在本地,Maven 从

下载依赖项

在 Azure Pipelines 中,它尝试从

下载依赖项

依赖项是

org.mule.connectors:mule-soap-engine:jar:1.6.11
,它确实存在于本地使用的 Mulesoft Nexus EE 存储库中,但不存在于 Azure DevOps 中使用的公共存储库中。

两个版本都使用相同的

pom.xml
相同的引用日志)。由于 Mulesoft Nexus EE 是私有存储库,因此我在本地
settings.xml
中配置了凭据,并使用
MavenAuthenticate@0
来引用 Azure Pipelines 中的服务连接。
MavenAuthenticate@0
似乎正在工作。

##[debug]mavenServiceConnections=4ff28bb5-a556-4220-9260-a1d89c8c7c6b
##[debug]4ff28bb5-a556-4220-9260-a1d89c8c7c6b=https://repository.mulesoft.org/nexus-ee/content/repositories/releases-ee/
##[debug]4ff28bb5-a556-4220-9260-a1d89c8c7c6b exists true
##[debug]4ff28bb5-a556-4220-9260-a1d89c8c7c6b auth scheme = UsernamePassword
##[debug]4ff28bb5-a556-4220-9260-a1d89c8c7c6b data REPOSITORYID = MuleRepository
##[debug]Found username/password service connection for package source https://repository.mulesoft.org/nexus-ee/content/repositories/releases-ee/
##[debug]Generating configs for 1 external repositories.
##[debug]Detected username/password credentials for 'https://repository.mulesoft.org/nexus-ee/content/repositories/releases-ee/'
##[debug]Agent.Version=3.220.5
##[debug]set task variable: userM2SettingsXmlPath=/home/vsts/.m2/settings.xml
##[debug]Processed: ##vso[task.settaskvariable variable=userM2SettingsXmlPath;issecret=false;]/home/vsts/.m2/settings.xml
##[debug]Adding authentication to settings file /home/vsts/.m2/settings.xml.
##[debug]Agent.Version=3.220.5
##[debug]set task variable: backupUserM2SettingsFilePath=/home/vsts/.m2/_settings.xml
##[debug]Processed: ##vso[task.settaskvariable variable=backupUserM2SettingsFilePath;issecret=false;]/home/vsts/.m2/_settings.xml
##[debug]Writing new settings.xml with added authentication.

我不明白的是为什么 Azure Pipelines 中的 Maven 正在不同的存储库中进行尝试,这些存储库甚至在

pom.xml
MavenAuthenticate@0
中都没有提及。我不知道如何调试这个。

maven azure-devops azure-pipelines mule anypoint-exchange
2个回答
0
投票

当 Maven 找不到依赖项时,它会尝试从构建中的其他存储库下载它,因为它不知道哪一个是正确的(如果有)。它还会尝试传递依赖 poms 中的存储库。

https://repository-master.mulesoft.org/ 开头的存储库不适合供外部 MuleSoft 使用,也不应该在您的项目中使用。如果它处于传递依赖关系中,您将无法控制它。

您没有分享足够的信息来进一步解决问题。如果它在本地工作,可能您在本地构建的 settings.xml 中拥有其他凭据,允许其访问其他存储库,而这些凭据在 Azure 构建中缺失。


-1
投票

你对此有解决方案吗?

© www.soinside.com 2019 - 2024. All rights reserved.