1. artifactory介紹
1. 介紹
Artifactory是一個Maven企業級倉庫。它提供先進的代理、高速緩存和安全設施,來供一個強大、獨立的重複性和環境建設的Maven所使用。Artifactory是一個Java的Maven擴展工具,Artifactory擁有很多強大的企業級特性和人性化的用戶接口,擁有眾多客戶群。
Artifactory是一個可以被安裝到Tomcat中去的Web應用程序
Artifactory 是一個高級Maven存儲管理軟件,通過簡單易用的用戶界面,提供強大的企業級功能,比如LDAP/活動目錄集成和精細的權限管理等。作為一個老牌Java Maven私服,Artifactory擁有眾多客戶群。Maven是Java開發者中流行的構建工具,Maven的好處之一是可以幫助減少構建應用程序時所依賴的軟件構件的副本,Maven建議的方法是將所有軟件構件存儲於一個叫做repository的遠程倉庫中。
Maven會從ibiblio.org中的公用倉庫中同步構件,這個公用倉庫下載緩慢、不穩定,並且不包含一些構件的最新版本,而且不能上傳團隊私有的構件。通過設置內部Maven倉庫,團隊可以更有好地利用Maven倉庫的優勢並且克服使用ibiblio上的倉庫時的缺點。
本文著眼於Maven倉庫工具應提供的一些功能,列出了選擇Maven倉庫工具的標準,說明了使用Artifactory設置Maven倉庫的相關步驟。在Linux和Windows中設置Maven倉庫的過程是相同的,少數不同點在文中已經用高亮顯示,本文列出了與這個Maven倉庫的使用有關的POM文件的範例,用截圖來向用戶闡述如何設置Maven倉庫,Maven和artifactory配置範例也有列出。
2. maven倉庫的目的
Maven倉庫的目的是作為團隊內所使用的所有軟件構件的內部私有構件倉庫,將Maven構件(jar和pom)存儲到一個專門的Maven倉庫比將它們存儲到版本控制系統中更有優勢,這是因為:
- 構件(jar)是二進制文件,不屬於版本控制系統,版本控制系統在處理文本文件方面比較好
- 保持較小的版本控制數據庫
- Checkout、update和其他版本控制的操作可以更快
3. 構建內部私有倉庫的優勢
- 減少可能的版本衝突
- 減少首次構建時需要的手動干涉
- 中央倉庫包含所有依賴的軟件構件,引用單一的中央倉庫比引用多個獨立的本地庫要好
- 使用內部倉庫做clean構建時會快些,因為Maven構件是從內部服務器而不是從因特網上的ibiblio服務器獲取。
2. 安裝Artifactory
Artifactory 的官網 https://jfrog.com/open-source/
1. 準備工作
- 安裝jdk8, 也可以使用源碼安裝, 看個人喜好
<code>sudo yum install java-1.8.0-openjdk-devel/<code>
- 添加JAVA_HOME
<code>sudo vim /etc/profile/<code>
添加:
<code>export JAVA_HOME=$(dirname $( dirname $(readlink $(readlink $( which javac)))))
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar/<code>
2. 下載
下載地址:https://bintray.com/jfrog/product/artifactory/download
下載對應的zip包, 並進行解壓在適當的地方:
<code>sudo vim /etc/profile
# 添加
export ARTIFACTORY_HOME=/data/apps/artifactory/<code>
3. 配置參數
創建 service, 執行
<code>sudo $ARTIFACTORY_HOME/bin/installService.sh/<code>
修改jvm參數
<code>sudo vim $ARTIFACTORY_HOME/etc/default/<code>
注意一點, default 裡有個 START_TMO 參數, 配置 service 啟動的超時時間, 默認 60s. 而實際測下來, 基本啟動時間都在90秒左右, 所以這個值需要按需配置. 比如配置為180.
4. 配置數據庫
<code>type=mysql
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://ip:3306/jfrog?characterEncoding=UTF-8&elideSetAutoCommits=true&useSSL=false
username=jfrog_rw
password=<password>/<code>
5. 配置二進制文件系統
使用的是 阿里雲 oss, 修改 $ARITFACTORY_HOME/etc/binarystore.xml
<code>
<config>
<chain>
<provider>
<endpoint>https://prod-jfrog-artifactory-ajing.oss-cn-test-internal.aliyuncs.com/<endpoint>
<identity>[ api key ]/<identity>
<credential>[ api key secret ]/<credential>
<httpsonly>false/<httpsonly>
<bucketname>prod-jfrog-artifactory-ajing/<bucketname>
<property>
<multipartelementsize>4194304/<multipartelementsize>
<multipartlimit>10000000000/<multipartlimit>
/<provider>
/<config>/<code>
6. 配置ha-node
我們在 $ARTIFACTORY_HOME/etc/ 下創建文件 ha-node.properties
<code>node.id=art01 ## HA集群中, 全局唯一
context.url=http://ip:8081/artifactory ## 這裡按需修改為自己的 ip
membership.port=0 ## 別改就對了
primary=true ## 只有 primary 為 true, 其它節點都為 false/<code>
7. 啟動應用
此時, 已經完成了 primary node 的配置. 我們通過 systemctl 啟動服務. 我們通過如下命令啟動:
<code>sudo systemctl start artifactory/<code>
訪問方式為: http://ip:8081.
閱讀更多 故事凌 的文章