Maven学习笔记2——向repository上传artifact

来源:百度文库 编辑:神马文学网 时间:2024/06/03 04:06:18
使用Maven的一大难题,就是dependency和repository的管理,而由于官网的不堪忍受性,我们不得不使用local repository或者自建私服,在这种情况下,我们该怎么样处理第三方的依赖包呢?
1. 如果是本地的repository, 可以通过如下的脚本来安装:
mvn install:install-file -Dfile=path-to-your-artifact-jar -DgroupId=your.groupId
-DartifactId=your-artifactId -Dversion=your-version -Dpackaging=jar -DgeneratePom=true
2.如果是自建的私服,并且是第三方jar的话,就要通过webdav插件来上传,Maven2.0.5宣称它已经support natively webdav protocol
to upload artefacts,并且声称通过如下的命令行脚本就可以完成deploy的工作:
(参见http://docs.codehaus.org/display/MAVENUSER/Upload+artifacts)
mvn deploy:deploy-file -DrepositoryId=your-repository-id -Durl=dav:your-repository-url
-DgroupId=your.groupId -DartifactId=your-artifactId -Dversion=your-version -Dpackaging=jar
-Dfile=jar-name
可以我们两个人花了半天的时间,才发现这些声明纯属扯淡!存在的问题如下:
1) 当前的Maven版本根本就没有对Webdav提供native的支持,
2) 我们仍然需要手工创建一个pom.xml,把它和jar包放在同一个目录下,
3) 在pom.xml里面,我们还要指定webdav的扩展,同时,pom文件中还需要指定artifactId, groupId和version,
4) pom文件的名字必须是pom.xml!错了就无法找到该文件!
下面是一个完整的pom.xml和命令行脚本:


4.0.0
org.eclipse.swt
win32
3.2.0



org.apache.maven.wagon
wagon-webdav
1.0-beta-1




命令行:
mvn deploy:deploy-file -Dfile=win32.jar -Durl=dav:http://localhost:8080/repository -DpomFile=pom.xml
如果是把项目的artifact往私服上上传,就要方便的多了,首先在pom中指定wagon-webdav的扩展,如上所示。然后加入distributionManagement:


YOUR_REPOSITORY_FOR_RELEASES_ID
Central Repository
dav:YOUR_REPOSITORY_FOR_RELEASES_URL


YOUR_REPOSITORY_FOR_SNAPSHOTS_ID
Central Development Repository
dav:YOUR_REPOSITORY_FOR_SNAPSHOTS_URL


之后就可以运行mvn deploy了