---
title: "部署一个独立的Jar包到远端maven 仓库"
date: 2013-10-24 10:42:00
tags: [maven]
---

必备环境：

- 推荐Java jdk 1.6及以上
- 推荐maven 3.0.0以上

假定我们需要将C:/ sqljdbc4.jar部署到我们的仓库服务器（[http://yourrepo.com/nexus）](http://yourrepo.com/nexus%EF%BC%89)  
首先我们需要在本地配置maven的server节点，该节点用于从仓库下载或者上传包时用于进行身份验证。（下载是可能会用到，视仓库服务器设置而定。）  
通常允许上传到两种仓库：Snapshots、Releases,分别为快照版仓库，主要用于存放不稳定的开发包，后者用于存放稳定版本的包。  
在节点内添加如下内容：

```xml
server>
  id>snapshotsid>
  username>你的用户名username>
  password>你的密码password>
server>
 server>
  id>releasesid>
  username>你的用户名username>
  password>你的密码password>
server>
```

打开cmd，将其定位到你要上传的jar包的文件夹：  
类似地输入以下命令：

```bash
mvn deploy:deploy-file –DgroupId=com.huacloud.jar –DartifactId=sqljdbc4 –Dversion=1.0.0 –Dpackaging=jar –Dfile=sqljdbc4.jar –DrepositoryId=snapshots –Durl=http://222.197.188.5:9000/nexus/content/repositories/snapshots
```

需要注意的是 –Dversion 、 -DrepositoryId 、-Durl 是对应的,如版本是snapshot ，仓库id 也应该是snapshot仓库的ID，仓库地址也需要填写snapshot仓库的url。  
如果cmd 当前路径与jar包的路径在同一文件夹下，-Dfile 直接写文件名即可，如果不在同一个目录下，需要在-Dfile 后面写上文件的绝对路径。

如果当你运行上述命令时出现如下的错误：  
 The goal you specified requires a project to extcute but there is no POM in this directory. Please verify you invoked Maven from the correct directory.

通常是由于操作系统之间的差异，你可以尝试这样：

```bash
"–DgroupId=com.huacloud.jar"
```

给所有的参数就加上双引号包起来。应该就可以解决问题了。  
![Maven deploy jar to remote repo](/images/2013/10/maven-deploy-jar.png)
