码迷,mamicode.com
首页 > 其他好文 > 详细

将本地构件部署至nexus

时间:2015-03-11 14:49:08      阅读:448      评论:0      收藏:0      [点我收藏+]

标签:maven   java   nexus   

1、在setting.xml中的servers中加入

 <server>
  <id>snapshots</id>
  <username>deployment</username>
  <password>123456</password>
 </server>
 <server>
  <id>releases</id>
  <username>deployment</username>
  <password>123456</password>
 </server>
2、然后在项目的pom.xml中加入,这里的id要和server中的id一致

<distributionManagement>
<snapshotRepository>
<id>snapshots</id>
<name>Internal Snapshots</name>
<url>http://192.168.38.64/nexus/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement>
3、使用命令行工具切换到项目目录
4、使用命令mvn deploy即可发布构件到快照库


如果配置错误在发布时会报下面的错误,一个是需要在servers中配置用户名密码,另外一个是需要注意用户名和密码
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy) on project util-core: Failed to deploy artifac 
ts: Could not transfer artifact com.tiamaes.util:util-core:jar:1.0.1-20141017.060700-2 from/to snapshots (http://192.168.38.64/nexus/content/repositor
ies/snapshots/): Failed to transfer file: http://192.168.38.64/nexus/content/repositories/snapshots/com/tiamaes/util/util-core/1.0.1-SNAPSHOT/util-cor
e-1.0.1-20141017.060700-2.jar. Return code is: 401, ReasonPhrase: Unauthorized. -> [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.apache.org/confluence/display/MAVEN/MojoExecutionException


maven3实战之仓库(快照版本)

----------此段摘自网络,如有雷同纯属巧合,请见谅

在Maven的世界中,任何一个项目或者构件都必须有自己的版本。版本的值可能是1.0.0,1.3-alpha-4,2.0,2.1-SNAPSHOT或者2.1-20091214.221414-13。其中,1.0、1.3-alpha-4和2.0是稳定的发布版本,而2.1-SNAPSHOT和2.1-20091214.221414-13是不稳定的快照版本。

Maven为什么要区分发布版本和快照版本呢?简单的1.0.0、1.2、2.1等不就够了吗?为什么还要2.1-SNAPSHOT,甚至是长长的2.1-20091214.221414-13?试想一下这样的情况,小张在开发模块A的2.1版本,该版本还未正式发布,与模块A一同开发的还有模块B,它由小张的同事季MM开发,B的功能依赖于A。在开发的过程中,小张需要经常将自己最新的构建输出,交给季MM,供她开发和集成调试,问题是,这个工作如何进行呢?

如果不停更新版本2.1.1、2.1.2、2.1.3....呢?首先,小张和季MM两人都需要频繁地更改POM,如果有更多的模块依赖于模块A,就会涉及更多的POM更改;其次,大量的版本其实仅仅包含了微小的差异,这样也会造成为版本号的滥用。

Maven的快照版本机制就是为了解决上述问题。在该例中,小张只需要将模块A的版本设定为2.1-SNAPSHOT,然后发布到私服中,在发布的过程中,Maven会自动为构件打上时间戳。比如:2.1-20091214.221414-13就表示2009年12月14日 22点14分14秒的第13次快照。有了该时间戳,Maven就能随时找到仓库中该构件2.1-SNAPSHOT版本最新的文件。这时,季MM配置对于模块A的2.1-SNAPSHOT版本的依赖,当她构件模块B的时候,Maven会自动从仓库中检查模块A的2.1-SNAPSHOT的最新构件,当发现有更新时便进行下载。默认情况下,Maven每天检查一次更新(由仓库配置的updatePolicy控制),用户也可以使用命令行-U参数强制让Maven检查更新,如:mvn clean install-U。

基于快照版本机制,小张在构建成功之后才能将构件部署至仓库,而季MM可以完全不用考虑模块A的构建,并且她能确保随时得到模块A的最新可用的快照构件,而这一切都不需要额外的手工操作。



mvn发布本地jar到nexus
部署第三方构件: 
构件可能是私有数据库的JDBC驱动如Oracle,或者你依赖于另一个JAR,它既不开源也无法免费获得。在这样的情况下,你就需要手动拿来这些构件然后发布到你自己的仓库中。Nexus提供宿主的"third-party"仓库,就是为了这个目的。 
使用以下命令发布该文件至Nexus: 
Java代码 
mvn deploy:deploy-file -DgroupId=com.oracle -DartifactId=ojdbc14 
-Dversion=10.2.0.3.0 -Dpackaging=jar -Dfile=ojdbc.jar 
-Durl=http://192.168.38.64/nexus/content/repositories/thirdparty/
-DrepositoryId=thirdparty 



将本地构件部署至nexus

标签:maven   java   nexus   

原文地址:http://blog.csdn.net/jaune161/article/details/44198089

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!