Azure Devops(十五) 使用Azure的私有Maven仓库
上一篇文章中,我们介绍了如何使用Azure的nuget仓库,今天我们来研究一下如何使用azure给我们提供的maven仓库。
首先,我们打开azureDevops,点击到制品界面,然后选择maven。
这里和nuget一样,如果你本地没有安装maven需要先安装maven的环境和JDK的相关环境,如果有的话就不需要安装了,如果你电脑上安装了IDEA的话可以直接使用IDEA自带的maven,免去安装的步骤,我们本篇文章重点在于讲述如何使用auzre的私有maven仓库,所以maven的相关安装操作就不在赘述了,需要的小伙伴请自行搜索。
这里为了简便性和通用性,我们使用IDEA自带的MAVEN来演示这个操作,类比自己的环境也是一样的。
首先我们先新建一个标准的maven项目,我这里直接使用了springboot的模板,当然其他模板也是可以的只要是一个证可以正常进行编译的maven项目都可以。
然后我们打开项目的POM.xml按照azure的要求在文件中添加以下配置内容
artanis https://pkgs.dev.azure.com/artanis-c/my-devops/_packaging/artanis/maven/v1 true true
这个配置节表明了我们要使用的仓库地址,并且志明了,不管是release还是snapshots都会使用我们这个仓库,如果说我们在实际开发中有要求,只有开发或者生产可以使用这个仓库我们可以更改对应的配置节来启动和停用。
我们打开POM.xml添加repositories和distributionManagement两个节点,并且把上面的配置项添加到里面去,实例文件如下所示。
这里要注意distributionManagement里是不包括release的要去掉。
<?xml version="1.0" encoding="UTF-8"?>"http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 org.springframework.boot spring-boot-starter-parent 2.7.2 com.example azure_maven 0.0.1-SNAPSHOT azure_maven azure_maven 1.8 org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-test test artanis https://pkgs.dev.azure.com/artanis-c/my-devops/_packaging/artanis/maven/v1 true true artanis https://pkgs.dev.azure.com/artanis-c/my-devops/_packaging/artanis/maven/v1 org.springframework.boot spring-boot-maven-plugin
这里添加好之后,我们需要去修改maven的setting.xml,如果你使用的机器上自己安装的maven这个配置文件一般在你用户文件夹的.m2文件夹下,windows对应用户文件夹。
如果是使用的IDEA我们按照下列步骤进行更改
需要在文件中找到servers节点,并且在其中添加如下配置
artanis artanis-c [PERSONAL_ACCESS_TOKEN]
这里是告诉maven,我们要从这个服务器获取Maven的依赖,你会发现这里的id和上面添加的repository的id是一致的。password可以使用我们之前为流水线生成好的token,如果你忘记了token,可以点击进行重新生成一个,实例的setting配置文件如下:
<?xml version="1.0" encoding="UTF-8"?> <settings xmlns="http://maven.apache.org/SETTINGS/1.2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.2.0 http://maven.apache.org/xsd/settings-1.2.0.xsd"> <pluginGroups> pluginGroups> <proxies> proxies> <servers> <server> <id>artanisid> <username>artanis-cusername> <password>a3dshbgfbpzqqmzrru6rfpx3geaodfs3oqixgkexq7vzwuseiyzapassword> server> servers> <mirrors> <mirror> <id>nexus-aliyunid> <mirrorOf>*mirrorOf> <name>Nexus aliyunname> <url>http://maven.aliyun.com/nexus/content/groups/publicurl> mirror> mirrors> <profiles> <profile> <repositories> <repository> <id>artanisid> <url>https://pkgs.dev.azure.com/artanis-c/my-devops/_packaging/artanis/maven/v1url> <releases> <enabled>trueenabled> releases> <snapshots> <enabled>trueenabled> snapshots> repository> repositories> profile> profiles> settings>
配置文件配置完成后,我们运行maven的deploy,查看一下运行的效果。
可以看到,maven已经把编译好的jar包上传到了我们私有仓库里去,然后我们随便找个其他的项目引用一下这个依赖看看。
可以看到,依赖已经成功的被获取了下来。