我正在尝试在Azure Devops中构建Maven生成管道。
我有一个项目,该项目具有彼此共享的文件(作为一组微服务项目),因此当我执行该项目的maven编译时,会创建一个.jar文件(已添加到我的本地maven存储库.m2中)。我笔记本电脑上的版本。我们现在可以将其称为shared.jar。
然后,当我在笔记本电脑上编译微服务时,它们每个都依赖于.m2存储库中的jar文件。然后,他们从那里获取依赖关系并进行Maven构建(MVN全新安装)。
不幸的是,代码构建管道无法维护本地.m2存储库。因此,当我尝试在每个微服务上执行“ mvn全新安装”时,它们无法找到shared.jar,因此构建失败。
我已经能够将.jar文件成功添加到Azure DevOps下的Feed和Artifact中,但是我似乎无法弄清楚如何将其添加到Micro Services Build中。
我如何在CI / CD Maven构建管道中获取本地jar文件的依赖关系,并将其放入构建将找到的Maven存储库中?
我尝试点击此链接:https://docs.microsoft.com/en-us/azure/devops/artifacts/get-started-maven?view=azure-devops
答案 0 :(得分:1)
为此,我们通过一个单独的Azure管道来构建依赖项,并将其部署到Azure feed:
variables:
- name: mavenRepoURL
value: 'https://myorg.pkgs.visualstudio.com/myproject/_packaging/myfeed/maven/v1'
- task: DownloadSecureFile@1
name: mvnSettings
displayName: 'Download Maven settings'
inputs:
secureFile: 'maven-azuredevops-settings.xml'
- task: MavenAuthenticate@0
displayName: Maven Authenticate Artifacts
inputs:
artifactsFeeds: 'myfeed'
- task: Maven@3
inputs:
mavenPomFile: 'pom.xml'
options: '-X -B -s $(mvnSettings.secureFilePath) -DWHERE="AzureDevops" -DremoteRepositories=$(mavenRepoUrl) clean deploy -U'
mavenAuthenticateFeed: true
publishJUnitResults: true
testResultsFiles: '**/TEST-*.xml'
请注意,出于安全考虑,不要将您的个人访问令牌存储在版本控制中,因此必须将其作为安全文件上传并在管道中进行下载很复杂。
通常将依赖项添加到项目的pom中,但也配置了Azure feed
<dependency>
<groupId>com.foobar.blah</groupId>
<artifactId>artifactId</artifactId>
<version>2.0.2</version>
</dependency>
<profile>
<id>AzureDevops</id>
<activation>
<property>
<name>WHERE</name>
<value>AzureDevops</value>
</property>
</activation>
<properties>
</properties>
<distributionManagement>
<repository>
<id>myfeedname</id>
<url>https://myorg.pkgs.visualstudio.com/_packaging/myfeed/maven/v1</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</distributionManagement>
</profile>
注意:我对Maven或Azure不太熟悉,所以有些事情可能不正确。例如,我对项目而不是组织范围的提要有疑问。参见What are the equivalent maven commands and settings to upload and download azure artifacts?
答案 1 :(得分:0)
请检查以下项目:
<server></server>
标签的ID,用户名和密码。