您的位置:首页 > 其它

Maven的使用方法:在服务器上进行自动编译时的发布(deploy)

2011-03-23 16:23 393 查看
使用maven管理项目,服务器组织结构为: 

公网服务器 http://maven.marsorstudio.cn,使用teamcity进行自动编译、发布maven项目组件。并作为svn服务器管理团队源码。

个人开发终端 ${user.home}/.m2/repository/或者是在settings.xml中配置的repository路径,作为开发时的依赖库。

开始的时候,我们在个人终端进行编译、测试。当组件很多时,可能会一个个组件进行   mvn:install ,发布临时snapshot到本地的repository库中。测试通过后,在服务器端使用teamcity进行 mvn:install,保存到服务器的 maven.marsorstudio.cn 中去。但是由于是install,发布的组件版本又是snapshot的,所以仅能够进行覆盖操作,服务器上永远只有一个jar文件。当在本地进行新工程、更新源码的时候,如果本地库中没有该组件,是完全可以从服务器上的对应路径中找到组件的。但是如果服务器上的版本进行了更新,此时本地库中存在一个对应组件的jar包,而maven查找更新的方法是在服务器上查找 maven-metadata.xml ,此时服务器上没有这个文件。导致无法更新服务器上的最新组件。

此时才翻过头来研究maven的deploy功能。因为我们使用的是teamcity在服务器上进行最新svn代码的下载、编译、打包。也就是执行mvn:xxxx命令进行发布。网上搜索到的相关文章都是使用ftp\scm\sftp进行远程发布的,于是摸索进行,查找官方网站,发现maven:deploy插件可以进行url的配置,使用file://协议,于是配置,按照官方网站进行配置:<url>file://我的路径</url>,但是此时出现问题,无论路径的配置方式是windows(F:\myMavenRepo),还是Unix形式(F:/myMavenRepo)都不能正常进行deploy。百思不得其解,maven报错也很诡异,说是无法格式化数字。。。。。NumberFormatException,我就日。研究很长时间,猜测是路径中的“:”的问题,于是添加引号<url>“file://我的路径"</url>,测试,不通过。于是再改:<url>file://"我的路径"</url>,测试,成功!!!!修改我的路径为UNIX和Windows分别尝试,都没有问题。---问题解决。

环境:java 1.6.20  Maven3.0.1  Eclipse Hellios ,最新的Eclipse Maven插件。

总结:windows的引号很重要,哈哈。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐