1. 程式人生 > >Maven學習總結(37)——利用GitHub或阿里雲OSS物件儲存、又拍雲、七牛雲端儲存等搭建個人Maven倉庫

Maven學習總結(37)——利用GitHub或阿里雲OSS物件儲存、又拍雲、七牛雲端儲存等搭建個人Maven倉庫

無論是用Nexus還是HTTP伺服器搭建Maven倉庫,總歸需要一臺伺服器,一臺伺服器需要花錢買和花時間維護,成本比較大。Nexus一般是公司用的比較多,個人不推薦使用。本文就是介紹一些適合個人搭建Maven倉庫的方式,相對來說比Nexus更方便、費用更低(基本是免費的)。

GitHub

首先在GitHub上新建一個repository,例如命名為maven-repo,用來當做Maven倉庫。

再將需要上傳到倉庫的專案用mvn deploy命令生成需要上傳的檔案(例如jar、pom、md5、sha1等各種檔案)。在該專案的pom.xml中加入:

1
2
3
4
5
6
<distributionManagement
>

<repository>
<id>file-repository</id>
<url>file://D:\abc</url>
</repository>
</distributionManagement>

配置中url是檔案生成的目錄。執行mvn deploy命令,會在D:\abc目錄下生成一個所需要上傳到倉庫的檔案:
mvn deploy生成的檔案
mvn deploy生成的檔案

接下來需要把這些檔案上傳到GitHub上,這一步如果會使用git命令的話應該會非常熟悉。進入D:\abc目錄,執行以下命令將檔案提交到GitHub:

1
2

3
4
5
git init
git add -A
git commit -m "first commit"
git remote add origin https://github.com/wucao/maven-repo.git
git push -u origin master

此時就可以在GitHub上看到這些檔案:
GitHub提交成功
GitHub提交成功

現在Maven倉庫已經可以立即使用了:

1
2
3
4
<repository>
<id>my-repository</id>
<url>https://raw.githubusercontent.com/wucao/maven-repo/master</url
>

</repository>

例如在pom.xml中加上:

1
2
3
4
5
<dependency>
<groupId>com.xxg.cloudstorage</groupId>
<artifactId>cloudstorage</artifactId>
<version>1.0.0</version>
</dependency>

七牛雲端儲存

除了GitHub之外,七牛雲端儲存也是一種幾乎免費的Maven倉庫的方案。七牛提供每月10G流量和10G儲存空間,一般來說很夠用了。

首先還是需要通過mvn deploy生成所需要上傳的檔案,步驟和上面GitHub搭建倉庫一致,不同的是生成的檔案不是上傳到GitHub倉庫,而是上傳到七牛雲端儲存。可以下載使用七牛提供的檔案同步工具將目錄同步到七牛上,具體使用文件:
http://developer.qiniu.com/code/v6/tool/qrsync.html

下載完成後將conf.json配置中的檔案同步目錄、七牛的bucket、accessKey、secketKey修改為自己的配置:

1
2
3
4
5
{
"src": "D:\\abc",
"dest": "qiniu:access_key=<AccessKey>&secret_key=<SecretKey>&bucket=<Bucket>",
"debug_level": 1
}

執行qrsync即可上傳目錄下所有檔案到七牛雲。

在其他專案中配置七牛雲的對外域名,上傳到七牛雲的jar包就可以在其他專案中直接使用了:

1
2
3
4
<repository>
<id>my-repository</id>
<url>http://o8sw7lrki.bkt.clouddn.com/</url> <!-- 這裡配置七牛雲的對外HTTP地址 -->
</repository>

除了七牛之外,阿里雲物件儲存OSS、騰訊雲物件儲存服務COS等也都是不錯的選擇,原理和七牛類似。

又拍雲

又拍雲和七牛雲原理差不多,這裡單獨拉出來介紹,是因為又拍雲提供了FTP檔案上傳。Maven Deploy外掛可以直接在執行mvn deploy命令時將檔案上傳到FTP伺服器上。

首先根據又拍雲文件,拿到FTP伺服器的地址、使用者名稱和密碼:
http://docs.upyun.com/guide/#ftpftps
地址:v0.ftp.upyun.com
使用者名稱:操作員名/服務名
密碼:操作員的密碼

將以下配置加到pom.xml中:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<project>
...
<distributionManagement>
<repository>
<id>ftp-repository</id>
<url>ftp://v0.ftp.upyun.com</url>
</repository>
</distributionManagement>

<build>
<extensions>
<!-- Enabling the use of FTP -->
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ftp</artifactId>
<version>2.10</version>
</extension>
</extensions>
</build>
...
</project>

在settings.xml中加入FTP的使用者名稱和密碼:

1
2
3
4
5
6
7
8
9
10
11
<settings>
...
<servers>
<server>
<id>ftp-repository</id>
<username>操作員名/服務名</username>
<password>操作員的密碼</password>
</server>
</servers>
...
</settings>

這樣直接執行mvn deploy命令,檔案就直接上傳到又拍雲上了,相對七牛雲來說方便很多。