Fenriswolf 程式筆記

奮利斯狼的地盤,小綿羊勿入

建立 Maven Repository

用 Maven 可以很容易管理所需要用到的 3rd-party libraries,但是有兩個缺點

  1. 從公司連 public maven repositories 很慢
  2. 公司內部的 libraries 無法放到 public repository 讓大家存取

解決這兩個問題的方式很簡單,就是建立自己的 local maven repository
比較有名的 maven repository server 有 Sonatype NexusJFrog Artifactory
這兩個 servers 都各有擁護者,本篇會介紹的是 Artifactory

1. 下載 Artifactory
因為 Artifactory 是用 java 寫的,所以要先安裝 JDK
再從 這裡 下載 rpm 回來安裝,本篇文章是用 2.5.1.1 版

yum install artifactory-2.5.1.1.rpm

2. 執行 Artifactory Server
啟動 artifactory service

service artifactory start

artifactory 會用內建的 tomcat 提供 web UI,預設的 port 是 8081
http://localhost:8081
admin 預設帳號密碼是 admin/password
登入後就可以看到首頁

點選 Artifacts tab 可以看到所有已註冊的 repositories 及已經下載過的 libraries

點選 Deploy tab 可以直接上傳 jar files,編輯 artifact,及自動產生 pom files

點選 Admin tab,可設定權限,加入新的 repositories,設定 backup 的時間目錄 等等功能

3. 設定權限
一般存取是需要登入的,但是為了讓其他人方便上傳 jar 檔,我會在 Permission 頁面多設定一個 Any Local,並把權限設為可 Deploy

4. 增加 repositories
在 Repositories 的頁面可以新增 remote repository

Artifactory 有一個很有用的功能就是 Virtual Repositories。Virtual Repositories 等於是 repositories 的群組,並提供一個單一的 link 讓使用者方便加入 maven 或 ivy 的設定檔中。
例如 libs-release 就包含了 libs-release-local、ext-release-local 和 remote-repos 三個 repositories。存取時只要用 http://localhost:8081/artifactory/libs-release 就可以了。更方便的做法是直接使用預設 http://localhost:8081/artifactory/repo,這個 link 會把所有的 repositories 全部加進來,就不用一個一個指定

5. 使用 restful API
除了 web UI 之外,Artifactory 還有提供 restful API
以下是所有 restful API 的定義
http://localhost:8081/artifactory/api/application.wadl

例如要存取系統的設定可以執行
http://localhost:8081/artifactory/api/system/configuration

6. 存取 Artifactory
6.1 使用 maven
在 settings.xml 或 pom.xml 加上 artifactory 的 URL

<repositories>
    <repository>
        <id>central</id>
        <url>http://localhost:8081/artifactory/repo</url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
    <repository>
        <id>snapshots</id>
        <url>http://localhost:8081/artifactory/repo</url>
        <releases>
            <enabled>false</enabled>
        </releases>
    </repository>
</repositories>
<pluginRepositories>
    <pluginRepository>
        <id>central</id>
        <url>http://localhost:8081/artifactory/repo</url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </pluginRepository>
    <pluginRepository>
        <id>snapshots</id>
        <url>http://localhost:8081/artifactory/repo</url>
        <releases>
            <enabled>false</enabled>
        </releases>
    </pluginRepository>
</pluginRepositories>

6.2 使用 ivy
在 ivysetting.xml 裡加上 Artifactory 的 URL

<resolvers>
    <ibiblio name="artifactory" m2compatible="true" root="http://localhost:8081/artifactory/repo"/>
</resolvers>

Artifactory 很貼心的提供產生設定檔的功能,在首頁 Client Settings 可選擇產生不同的設定檔,只要把下拉選單的值設定一下再按 Generate Settings 就可以了

 
 
執行環境
CentOS 6.2
Artifactory 2.5.1.1

參考資料
Artifactory

廣告

2012/04/04 - Posted by | Java Tool | , ,

仍無迴響。

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s

%d 位部落客按了讚: