maven deploy 的那些事

简介: 玩过 maven 私服的都知道这个玩意,在本地的 pom 文件里做好配置,执行下 maven 的 deploy 即可把新的 jar 部署到私服上。

玩过 maven 私服的都知道这个玩意,在本地的 pom 文件里做好配置,执行下 maven 的 deploy 即可把新的 jar 部署到私服上。

下面说说该怎么配置

[html]  view plain  copy
 print ? 在CODE上查看代码片 派生到我的代码片
  1. <!--发布-->  
  2. <distributionManagement>  
  3.     <repository>  
  4.         <id>private-nexus-library-releases</id>  
  5.         <name>private-nexus-library-releases</name>  
  6.         <url>http://host:port/maven-web/content/repositories/releases/</url>  
  7.     </repository>  
  8.   
  9.     <snapshotRepository>  
  10.         <id>private-nexus-library-snapshots</id>  
  11.         <name>private-nexus-library-snapshots</name>  
  12.         <url>http://host:port/maven-web/content/repositories/snapshots/</url>  
  13.     </snapshotRepository>  
  14. </distributionManagement>  
然后在maven的 conf/settings.xml 配置
[html]  view plain  copy
 print ? 在CODE上查看代码片 派生到我的代码片
  1. <servers>  
  2.     <server>    
  3.         <id>private-nexus-library-releases</id>    
  4.         <username>username</username>    
  5.         <password>password</password>    
  6.     </server>  
  7.     <server>  
  8.         <id>private-nexus-library-snapshots</id>  
  9.         <username>username</username>    
  10.         <password>password</password>    
  11.     </server>  
  12. </servers>  
注意 server 的 id 要与 repository 的 id 保持一致。

最后,有一个问题必须注意,与这个 maven deploy 没直接关系,但是配置不恰当会导致 deploy 失败。

就是每个 module 的 version ,一般是继承 parent 的version ,比如你可能会这样

[html]  view plain  copy
 print ? 在CODE上查看代码片 派生到我的代码片
  1. <parent>  
  2.     <groupId>module.some</groupId>  
  3.     <artifactId>module_parent</artifactId>  
  4.     <version>${parent.version}</version>  
  5. </parent>  
这里哪里不对吗?当然是对的,而且 version 使用变量的好处是以后方便统一修改。但是这样发布到 maven 私服上后,你会发现 maven 会试图下载 module_parent 的 ${parent.version} 的 jar ,当然是不存在的。但是,已经指定了 parent.version 的值了,为什么没有解析?原因是 deploy 的过程中,parent 标签里的变量是不会解析的,必须是一个常量
[html]  view plain  copy
 print ? 在CODE上查看代码片 派生到我的代码片
  1. <parent>  
  2.     <groupId>module.some</groupId>  
  3.     <artifactId>module_parent</artifactId>  
  4.     <version>1.0.0</version>  
  5. </parent>  
目录
相关文章
|
4月前
|
Java Maven 数据安全/隐私保护
Nexus【应用 01】上传jar包到私有Maven仓库的两种方法:手动 Upload 和 mvn deploy 命令(配置+操作流程)
Nexus【应用 01】上传jar包到私有Maven仓库的两种方法:手动 Upload 和 mvn deploy 命令(配置+操作流程)
1729 0
|
4月前
|
Java 测试技术 Maven
maven的package、install、deploy命令
maven的package、install、deploy命令
104 0
|
Java Maven
|
Java Maven 开发者
Maven deploy配置方法
Maven deploy配置方法
866 0
|
Java jenkins 应用服务中间件
Jenkins:从SVN拉取Maven项目,部署Tomcat(Deploy to container)
Jenkins:从SVN拉取Maven项目,部署Tomcat(Deploy to container)
136 0
Jenkins:从SVN拉取Maven项目,部署Tomcat(Deploy to container)
|
Java 测试技术 Maven
Maven - package、install、deploy 区别
Maven - package、install、deploy 区别
324 0
|
Web App开发 Java 测试技术
Maven +Tomcat+m2eclipse的热部署(hot deploy)
原文地址: http://www.cnblogs.com/cbf4life/archive/2010/01/29/1659502.html 软件版本:maven 2.2 tomcat 6.0,Eclipse 3.4 首先是建立环境,tomcat、maven、m2eclipse都不说了,这不配好,剩下的你也别看了。
1054 0
|
Web App开发 Java 应用服务中间件
How to create a Maven web app and deploy to Tomcat - fast
原文地址: http://www.blogjava.net/sealyu/archive/2010/01/08/308706.html Procedure Prerequisites and Assumptions Step One - Prepare the...
1027 0