利用mvn deploy命令上传包(转)
本文转自https://blog.csdn.net/chenaini119/article/details/52764543
mvn安装
下载maven的bin,在apache官方网站可以下载。
https://maven.apache.org/download.cgi
在PATH里加入maven的bin的路径
配置完毕后,在Windows命令提示符下,输入mvn -v测试一下。是否安装成功。
mvn:deploy在整合或者发布环境下执行,将最终版本的包拷贝到远程的repository,使得其他的开发者或者工程可以共享。
以将ojdbc14传到nexus中的thirdparty为例
一 配置settings.xml
因为nexus是需要登陆操作,当然可以通过配置免登陆,这是后话。
在settings.xml的
<server>
<id>thirdparty</id>
<username>admin</username>
<password>admin123</password>
</server>
- 1
- 2
- 3
- 4
- 5
当然如果你要上传包去其他仓库,可依照此例,如
<server>
<id>central</id>
<username>admin</username>
<password>admin123</password>
</server>
- 1
- 2
- 3
- 4
- 5
如果进行deploy时返回Return code is: 401错误,则需要进行用户验证或者你已经验证的信息有误。
二 cmd输入命令
mvn deploy:deploy-file -DgroupId=com.vip.vfc -DartifactId=common -Dversion=1.0.0 -Dpackaging=jar -Dfile=E:\common.jar -Durl=http://localhost:8081/nexus/content/repositories/releases -DrepositoryId=releases
DgroupId和DartifactId构成了该jar包在pom.xml的坐标,项目就是依靠这两个属性定位。自己起名字也行。
Dfile表示需要上传的jar包的绝对路径。
Durl私服上仓库的位置,打开nexus——>repositories菜单,可以看到该路径。
DrepositoryId服务器的表示id,在nexus的configuration可以看到。
Dversion表示版本信息,怎样得到一个jar包准确的版本呢?
解压该包,会发现一个叫MANIFEST.MF的文件,这个文件就有描述该包的版本信息。
比如Manifest-Version: 1.0可以知道该包的版本了。
上传成功后,在nexus界面点击3rd party仓库可以看到这包。
今天deploy项目时,maven报错401,百度了一下,找到以下文章,解决了问题,所以就考了过来。
源地址是:http://www.netingcn.com/maven-deploy-nexus.html
首先在Nexus中创建一个自己私有的仓库,步骤为Repositories –> Add –> Hosted Repository,在页面的下半部分输入框中填入Repository ID和Repository Name即可,比如分别填入myrepo和 my repository,点击save就创建完成了。
如果要把构建部署至私服中,需要在构建的 pom.xml 文件增加 distributionManagement 配置项,有多种协议可以用来部署构建,这里主要讲两种。
第一种配置如下:
- 1
- 2
<project>
[...]
<distributionManagement>
<repository>
<id>myrep</id>
<name>my repository</name>
<url>file:/usr/local/mvn-private-server/nexus-oss-webapp-1.9.2.3/./../sonatype-work/nexus/storage/myrep/</url>
</repository>
</distributionManagement>
[...]
</project>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
说明:其中id就是需要部署构建的仓库Id,name似乎不重要,可以随便输入,url就是仓库的configuration中Default Local Storage Location项的对应的信息。采用此种方法,服务器不会对部署操作进行认证,同时配置也把仓库的物理存储地址完全暴露,感觉不是太好。
第二种配置如下:
- 1
- 2
<project>
[...]
<distributionManagement>
<repository>
<id>tagphi</id>
<url>http://nexus-server-ip:8081/nexus/content/repositories/myrep</url>
</repository>
</distributionManagement>
[...]
</project>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
说明:上述的distributionManagement信息可以在对于的仓库的Summary中找到。
配置好后,此时执行mvn deploy,部署应该不会成功,根据提示信息,重新执行 mvn deploy -e 或 mvn deploy -X,此时能看到具体的错误信息,报Return code is: 401错,这个是因为发布者没有权限,需要把用户认证信息配置在maven的settings.xml中,该文件在mavne安装包下的conf目录下,这是一个全局配置,同时可以把该文件复制到 userdir/.m2 目录下,这样配置就只对当前用户生效。在settings.xml文件中servers段中添加如下信息
<server>
<id>myrep</id>
<username>deployment</username>
<password>password</password>
</server>
- 1
- 2
- 3
- 4
- 5
其中id就是部署仓库的id,username是作为部署用户,Nexus系统默认的deployment,密码为deployment123,可以在security — users中找到,如果需要设置密码,在用户列表中找到该用户,在该用户上点击右键,会出来一个菜单供重置密码或修改密码。此时在执行 mvn deploy,应该可以看到成功发布了。当第二次执行 mvn deploy 又失败,这次失败原因是Return code is: 400,该错误的原因是在创建仓库时在configuration中的Deployment Policy设置为了Disable Redeploy,修改为Allow Redeploy即可。
私服搭建
1.确定已安装maven和jdk环境
2.下载nexus http://www.sonatype.org/nexus/go
3.解压后进入/bin/jsw目录
4.根据本机操作系统选择相应版本,此处以64位windows为例
5.双击install-nexus.bat安装nexus服务,然后双击start-nexus.bat启动服务
6,访问http://localhost:8081/nexus/,出现下面页面表示安装成功
7.点击右上角的Log in,输入默认账号,密码
8.点击Server配置服务器信息,勾选Http Proxy Settings,并设置代理服务器
9.添加第三方jar包,nexus提供了3rd party、Snapshots、Releases这三个目录存放第三方jar包
10.上传第三方jar包
11.确定填写无误后,点击Add Artifact(可添加多个),然后点击Upload Artifact上传所有jar包
12.上传成功后在可在Releases中查看
13.在其他项目的pom.xml中引用
<repositories>
<repository>
<id>nexus</id>
<name>Team Nexus Repository</name>
<url>http://localhost:8081/nexus/content/repositories/releases/</url>
</repository>
</repositories>
<!-- 插件地址 -->
<pluginRepositories>
<pluginRepository>
<id>nexus</id>
<name>Team Nexus Repository</name>
<url>http://localhost:8081/nexus/content/repositories/releases/</url>
</pluginRepository>
</pluginRepositories>
<!-- 引用的jar包 -->
<dependencies>
<dependency>
<groupId>com.fibre.hello</groupId>
<artifactId>helloworld</artifactId>
<version>0.0.1-Releases</version>
</dependency>
</dependencies>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
从Maven项目中导出项目依赖的jar包
一、导出到默认目录 targed/dependency
从Maven项目中导出项目依赖的jar包:进入工程pom.xml 所在的目录下,执行如下命令:
1、mvn dependency:copy-dependencies或在eclipse中,选择项目的pom.xml文件,点击右键菜单中的Run As,见下图红框中,在弹出的Configuration窗口中,输入 dependency:copy-dependencies后,点击运行;
2、maven项目所依赖的jar包会导出到targed/dependency目录中。
二、导出到自定义目录中
在maven项目下创建lib文件夹,输入以下命令:
1、mvn dependency:copy-dependencies -DoutputDirectory=lib;
2、maven项目所依赖的jar包都会复制到项目目录下的lib目录下。
三、设置依赖级别
同时可以设置依赖级别,通常使用compile级别
mvn dependency:copy-dependencies -DoutputDirectory=lib -DincludeScope=compile
利用mvn deploy命令上传包(转)的更多相关文章
- mvn deploy命令上传包
需求:有的时候需要单独上传release jar包,因为存在工程代码在A内网SVN,Nexus在B内网.这种情况下使用VPN也无法解决Jar包发布的问题. 这个时候采取的方式只能是: 打出jar包 - ...
- selenium+java利用AutoIT实现文件上传
转自https://www.cnblogs.com/yunman/p/7112882.html?utm_source=itdadao&utm_medium=referral 1.AutoIT介 ...
- 使用“rz -be”命令上传文件至服务器;使用“sz 文件名”从服务器下载文件到本地
注意:需要事先安装lrzsz服务 yum install -y lrzsz 因为服务器没有安装sftp服务,无法使用FileZilla.Xftp等连接服务器上传文件,这种情况可以利用rz命令上传文件. ...
- Linux 普通用户拿到root权限及使用szrz命令上传下载文件
1.如何拿到root权限 在shell里如果看到你的命令输入行最前面显示的是 $符号,说明目前账号只有系统的普通权限. 输入:sudo su 这时能看到shell的输入行最前面已经显示的是#号,说明已 ...
- node上传包到npm公共库
自己想做些插件分享出去,npm上传你的插件包是最好的选择,废话不多说,直接开干: 1.我们先建一个文件夹,随便先写个js文件,名字随便写,命名hello.js: 2.再用npm init命令生成pac ...
- Java 利用SWFUpload多文件上传 session 为空失效,不能验证的问题 swfUpload多文件上传
Java 利用SWFUpload多文件上传 session 为空失效,不能验证的问题(转) 我们都知道普通的文件上传是通过表单进行文件上传的,还不能达到异步上传的目的.通过使用某些技术手段,比如jqu ...
- linux下常用FTP命令 上传下载文件【转】
1. 连接ftp服务器 格式:ftp [hostname| ip-address]a)在linux命令行下输入: ftp 192.168.1.1 b)服务器询问你用户名和密码,分别输入用户名和相应密码 ...
- npm上传包
npm上传包 向npm上传一个包是很容易的,只需要三步: 1.在npm官网注册一个账户,然后在cmd中登录账户 注:npm不要使用代理,直接连接 https://registry.npms.org/. ...
- mac上使用git命令上传项目工程源码至Github/gitee
原文连接:(http://www.studyshare.cn/blog/details/1164/0 ) 一.安装git工具 1.官网下载地址:点击下载 安装步骤略,mac安装工具双击拖动即可. 2 ...
随机推荐
- centos6.8安装mysql5.6【转】
首先先要去看看本机有没有默认的mysql, 本地默认有的,我们应先卸载,在安装新的这个逻辑. rpm -qa | grep mysql 我本机默认安装的mysql5.1.73 下一步删除 rpm -e ...
- Java与.NET的WebServices相互调用
一:简介 本文介绍了Java与.NET开发的Web Services相互调用的技术.本文包括两个部分,第一部分介绍了如何用.NET做客户端调用Java写的Web Services,第二部分介绍了如何用 ...
- OracleDBConsoleorcl 启动不了 服务特定错误2【解决办法】
问题描述: 我的oracle不知道为什么OracleDBConsoleorcl 启动不了 出现“服务特定错误2”现在我也不知道原因 估计是因为我电脑的IP经常变动,有时在公司用,有时在家里用! 我的o ...
- WebStrom配置node.js
Webstrom的注册码: WebStorm 7.0.1注册码 user name:newasp 注册码: ===== LICENSE BEGIN ===== 16417-12042010 00001 ...
- java & android 开发规范手册
阿里巴巴Java开发手册(终极版)https://pan.baidu.com/s/1c1UQM7Q 阿里巴巴Java开发规约插件p3cGitHub:https://github.com/alibaba ...
- MNMP下nginx1.6开启支持pathinfo配置,支持thinkphp的URL格式
对于thinkphp框架项目的访问格式有多种,其中pathinfo是默认的基本访问格式,格式为:http://hostname:port/index.php/模块名/action名/参数1/参数1的值 ...
- 【LOJ】#2126. 「HAOI2015」数组游戏
题解 简单分析一下就知道\(\lfloor \frac{N}{i} \rfloor\)相同的\(i\)的\(sg\)函数相同 所以我们只要算\(\sqrt{n}\)个\(sg\)函数就好 算每一个\( ...
- Linux下安装matlab2014a
下载Matlab 我放在百度云盘里了,下载链接: http://pan.baidu.com/s/1pLE1qgr 密码: x4tw 该文件下载解压后如下所示:该文件下载解压后如下所示: 注意linux ...
- 005.KVM日常管理2-virt管理
一 安装管理工具 [root@kvm-host ~]# rpm -qa|grep libguestfs-tools #查看相关管理工具,若没安装,可使用yum安装. 二 日常管理 2.1 命令格式 ...
- 001.Postfix简介
一 简介 postfix是Wietse Venema在IBM的GPL协议之下开发的MTA(邮件传输代理)软件.Postfix提供更快.更容易管理.更安全,同时还与 sendmail保持足够的兼容性,是 ...