在Azure DevOps Server 中提交Maven 依赖包(mvn deploy-file)
Contents
1. 概述
2. 必要准备
安装Java
下载安装Maven
3. 服务器配置
新建连接源
4. 客户端配置
5. 上传maven包文件
6. 常见问题
Maven最新版本3.6.2出现异常
1. 概述
Azure DevOps Server (TFS)可以实现多种依赖包的托管服务器,例如NuGet、NPM、Maven、Python、Gradle、Azure通用包等。其中Maven库是许多Java开发人员最为熟悉的一种库,Azure DevOps Server提供了一种类似与Maven私服(例如Nexus)的保管理服务。开发人员可以从Azure DevOps Server中获取软件系统依赖的第三方软件包,也可以将自己开发的公共软件包发布到Azure DevOps服务器上,分享给其他开发团队。
Azure DevOps中的Maven包管理,遵循标准的Maven包管理协议,开发人员可以使用任何标准的maven工具上传和下载依赖包。比较常见的依赖包管理有两种方式:在编译流程中自动发布包文件;使用maven插件deploy-file将已经存在的包文件发布到服务器上。
如果需要了解在编译流程中发布maven包,可以参考 Azure DevOps Server;
本文主要介绍如何使用maven插件deploy-file将已经存在的包文件发布到服务器上。
2. 必要准备
安装Java
在本文中,我们使用64位java,1.8.0
C:\apache-maven-3.6.2\bin>java -version
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)
下载安装Maven
在本文中,我们使用了Maven版本3.6.0,当前最新的版本3.6.2出现异常,参考后面的常见问题描述。
3. 服务器配置
新建连接源

配置名称和权限

生成Maven认证信息


复制在服务器中生成的Maven认证信息,并将其配置到本地计算机的Maven配置文件settings.xml中

4. 客户端配置
使用文本编辑器打开本地计算机中的Maven配置文件,并将上面生成的认证信息粘贴到文档中的Servers节点中

5. 上传maven包文件
首先我们需要准备好已经存在的Maven包文件,例如下面的的操作中,我们使用从互联网下载的包文件ckfinder.jar
我们编写好下面的命令行脚本
mvn deploy:deploy-file -DgroupId=com.ckfinder -DartifactId=ckfinder -Dversion=2.6 -Dpackaging=jar -DrepositoryId=tfs-net-com-cn-collection-c-maven -Dfile=D:\temp\ckfinder.jar -Durl=http://tfs.net.com.cn:8080/tfs/Collection/_packaging/maven/maven/v1
需要对上面的几个关键参数做一些说明:
- repositoryId:本地Maven配置文件中的server节点名称,也是上面章节中从Azure DevOps服务器中获取的认证信息中的服务器名称;Maven会按照这个名称查询到认证信息,提交给服务器
- file:本地计算机中存贮依赖包文件的完整路径
- url:Azure DevOps Server中的Maven库服务器地址
如果需要了解更多的参数,请参考maven的官方文档:
- http://maven.apache.org/plugins/maven-deploy-plugin/usage.html
- http://maven.apache.org/plugins/maven-deploy-plugin/deploy-file-mojo.html
6. 常见问题
Maven最新版本3.6.2出现异常
C:\apache-maven-3.6.2\bin>mvn deploy:deploy-file -DgroupId=com.ckfinder -DartifactId=ckfinder -Dversion=2.6 -Dpackaging=jar -DrepositoryId=tfs-mc-net-智能软件公司-zhanghongjun -Dfile=D:\temp\htmlparser.jar -Durl=http://tfs.mc.net:8080/tfs/智能软件公司/_packaging/zhanghongjun/maven/v1 [INFO] Scanning for projects... [INFO] [INFO] ------------------< org.apache.maven:standalone-pom >------------------- [INFO] Building Maven Stub Project (No POM) 1 [INFO] --------------------------------[ pom ]--------------------------------- [INFO] [INFO] --- maven-deploy-plugin:2.7:deploy-file (default-cli) @ standalone-pom --- Uploading to tfs-mc-net-智能软件公司-zhanghongjun: http://tfs.mc.net:8080/tfs/智能软件公司/_packaging/zhanghongjun/maven/v1/com/ckfinder/ckfinder/2.6/ckfinder-2.6.jar Uploading to tfs-mc-net-智能软件公司-zhanghongjun: http://tfs.mc.net:8080/tfs/智能软件公司/_packaging/zhanghongjun/maven/v1/com/ckfinder/ckfinder/2.6/ckfinder-2.6.pom [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 2.018 s [INFO] Finished at: 2019-09-26T17:28:41+08:00 [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy-file (default-cli) on project standalone-pom: Failed to deploy artifacts: Could not transfer artifact com.ckfinder:ckfinder:jar:2.6 from/to tfs-mc-net-智能软件公司-zhanghongjun (http://tfs.mc.net:8080/tfs/智能软件公司/_packaging/zhanghongjun/maven/v1): Failed to transfer file http://tfs.mc.net:8080/tfs/智能软件公司/_packaging/zhanghongjun/maven/v1/com/ckfinder/ckfinder/2.6/ckfinder-2.6.jar with status code 400 -> [Help 1] [ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [ERROR] Re-run Maven using the -X switch to enable full debug logging. [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.a
------------------------------------------------------------
http://www.cnblogs.com/danzhang/ DevOps MVP 张洪君
------------------------------------------------------------
在Azure DevOps Server 中提交Maven 依赖包(mvn deploy-file)的更多相关文章
- 在Azure DevOps Server中运行基于Spring Boot和Consul的微服务项目单元测试
1 概述 谈到微服务架构体系,绕不开服务发现这个功能.服务发现机制是简化微服务配置.实现容灾.水平扩缩容.提高运维效率的重要方式.在服务发现工具中,Consul在部署和使用方面与容器结合的天衣无缝,成 ...
- Azure DevOps Server 2019 第一个补丁包(2019.0.1 RTW)
在Azure DevOps Server 2019正式发布后的2周左右时间,微软快速发布了第一个补丁包Azure DevOps Server 2019.0.1 RTW.Azure DevOps Ser ...
- 在Azure DevOps Server(TFS系统)中部署回退/回滚方案(Rollback)
概述 Azure DevOps Server(之前名TFS)是微软公司实现软件研发.测试和部署一体化的全流程解决方案.在近几年的研发过程中,Azure DevOps Server 大幅增强了软件部署过 ...
- 微软 Azure DevOps Server 2019 Update 1 (TFS 2019.1)
1.概述 微软在2019年5月发布Azure DevOps Server 2019后不到2个月的时间里,就快速准备好了第一个升级包(2019 Update 1),并计划在几周后发布正式版本.也许你还没 ...
- 你好,Azure DevOps Server 2019;再见,Team Foundation Server
微软正式发布Azure DevOps Server 2019的第一个版本,作为Team Foundation Server (TFS)2018的升级版本和替代产品. 这是目前市面上唯一一款将产品名称冠 ...
- Azure DevOps Server:Git权限设置
Azure DevOps Server 权限概述 在Azure DevOps Server (之前名称为TFS)中,权限是一个比较复杂的概念.从权限层级上来说,包括服务器级别.团队项目集合级别.团队项 ...
- Azure DevOps Server(TFS) 客户端分析
Azure DevOps Server(TFS) 是微软公司的软件协作开发管理平台产品,为软件研发.测试.实施提供全流程的服务.作为一款应用服务器产品,他的客户端是什么,在哪里下载客户端?我们在项目实 ...
- Sourcetree 集成 Azure DevOps Server(Git)
概述- SourceTree 是 Windows 和Mac OS X 下免费的 Git 和 Hg 客户端管理工具,同时也是Mercurial和Subversion版本控制系统工具.支持创建.克隆.提交 ...
- 在macOS苹果电脑上安装Azure DevOps Server(TFS)代理
1. 概述 MacOS是一套运行于苹果Macintosh系列电脑上的操作系统,是首个在商用领域成功的图形用户界面操作系统.Iphone应用软件的开发人员,都使用运行macOS的电脑或mini盒子进行软 ...
随机推荐
- 怎么在ubuntu下安装使用pycharm
1.安装jdk 先下载jdk: https://pan.baidu.com/s/1o7MqvKA 解压到本地: 方法一:直接点击右键,点“提取此文件 方法二:使用命令行sudo tar -zxvf j ...
- spring cloud 2.x版本 Gateway路由网关教程
前言 本文采用Spring cloud本文为2.1.8RELEASE,version=Greenwich.SR3 本文基于前两篇文章eureka-server.eureka-client.eureka ...
- 巧妙利用selenium中的JS操作来处理特殊的文本框
在使用selenium对页面进行相关操作时,有时候会遇到以下三种情况: 1.日期框:无法直接输入文本,必须要选择某一天的日期并点击才会填入文本框: 2.检索框:可以直接输入文本,但必须要点击根据输入的 ...
- vsc 自定义快速生成vue模板
1.安装vscode 官网地址:https://code.visualstudio.com/ 2.安装一个插件,识别vue文件 插件库中搜索Vetur,下图中的第一个,点击安装,安装完成之后点击重新加 ...
- 支付签名 MD5Util 排序工具类
package com.skynet.wechat.wxPay.common; import java.security.MessageDigest; import java.util.Iterato ...
- js的promise
转载自: https://segmentfault.com/a/1190000007032448#articleHeader16 一 前言 本文主要对ES6的Promise进行一些入门级的介绍.要想学 ...
- python连接Oracle工具类
上代码: # -*- coding:utf-8 -*- import cx_Oracle import pandas as pd class ORACLE(object): def __init__( ...
- Java内存模型以及happens-before规则
本人免费整理了Java高级资料,涵盖了Java.Redis.MongoDB.MySQL.Zookeeper.Spring Cloud.Dubbo高并发分布式等教程,一共30G,需要自己领取.传送门:h ...
- Python小工具:3秒钟将视频转换为音频
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: pk 哥 PS:如有需要Python学习资料的小伙伴可以加点击下方 ...
- 如何访问到静态的文件,如jpg,js,css.
如果你的DispatcherServlet拦截"*.do"这样的有后缀的URL,就不存在访问不到静态资源的问题. 如果你的DispatcherServlet拦截"/&qu ...