上传jar包到maven库

情形:maven项目中经常会遇到项目需要的jar在中央库中没有。以百度云推送jar包为例。这时候我们有两种解决办法:

1.直接在本地库中install这个jar包。我们可以运行命令:

mvn install:install-file -DgroupId=baidu -DartifactId=bacc-api-lib -Dversion=1.1.2  -Dpackaging=jar -Dfile=E:\bccs-api-lib-1.1.2.jar

2.上传到本地仓库管理器Nexus中,它的好处是代理远程仓库的同时维护本地仓库,以节省带宽和时间。整个团队可以共享资源。例如我将包上传到Nexus中,其他人只要在本地库中配置有读取这个Nexus的资源的用户,就可以依赖这里面的包。具体配置是在settings.xml的<servers></servers>

<server>   
<id>
thirdparty</id>   
<username>admin</username>
<password>admin123</password>   
</server>

 当然如果是上传包,就需要这个用户拥有上传的权限。上传的时候需要考虑仓库的类型,仓库分为:hosted、proxy、group、virtual四种类型。并且只能上传jar到hosted类型的仓库中。

但是如果依赖的仓库是group类型的,怎么上传呢?这时候如果直接向group类型的仓库中,会发现有return code为400的错误。其实group类型的仓库本身不包含资源,它只包含某些仓库,然后这些仓库中含有的资源合并在一起,你可以从中下载资源,但是不能直接上传jar包给他,只能上传到它包含的hosted类型的仓库中,就可以在这个组中访问到了。例如一个名为test group的组包含了hosted类型的3rd party仓库,将包上传到3rd party中就可以在test group中访问到这个包了。

上传的命令是:

mvn deploy:deploy-file -DgroupId=baidu -DartifactId=bacc-api-lib -Dversion=1.1.2 -Dpackaging=jar -Dfile=E:\bccs-api-lib-1.1.2.jar -Durl=http://localhost:8081/nexus/content/repositories/thirdparty/ -DrepositoryId=thirdparty。

最后我们在项目的pom.xml文件中添加依赖就可以了:

<dependency>

<groupId>baidu</groupId>

<artifactId>bacc-api-lib</artifactId>

<version>1.1.2</version>

</dependency>

 

你可能感兴趣的:(maven,Install,nexus,deploy,group)