




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、設置Maven倉庫1. 介紹Maven是Java開發者中流行的構建工具,Maven的好處之一是可以幫助減少構建應用程序時所依賴的軟件構件的副本,Maven建議的方法是將所有軟件構件存儲于一個叫做repository的遠程倉庫中。Maven會從中的公用倉庫中同步構件,這個公用倉庫下載緩慢、不穩定,并且不包含一些構件的最新版本,而且不能上傳團隊私有的構件。通過設置內部Maven倉庫,團隊可以更有好地利用Maven倉庫的優勢并且克服使用ibiblio上的倉庫時的缺點。本文著眼于Maven倉庫工具應提供的一些功能,列出了選擇Maven倉庫工具的標準,說明了使用Artifactor
2、y設置Maven倉庫的相關步驟。在Linux和Windows中設置Maven倉庫的過程是相同的,少數不同點在文中已經用高亮顯示,本文列出了與這個Maven倉庫的使用有關的POM文件的范例,用截圖來向用戶闡述如何設置Maven倉庫,Maven和artifactory配置范例也有列出。1.1 背景知識本文假定讀者熟悉以下的概念和技術:l Maven 2 l J2EE web 服務器部署過程(e.g. 在Tomcat中部署Web應用程序) l XML 1.2 Maven倉庫的目的 Maven倉庫的目的是作為團隊內所使用的所有軟件構件的內部私有構件倉庫,將Maven構件(jar和pom)存儲到一個專門
3、的Maven倉庫比將它們存儲到版本控制系統中更有優勢,這是因為:l 構件(jar)是二進制文件,不屬于版本控制系統,版本控制系統在處理文本文件方面比較好l 保持較小的版本控制數據庫l Checkout、update和其他版本控制的操作可以更快1.3 建立內部私有倉庫的優勢: l 減少可能的版本沖突 l 減少首次構建時需要的手動干涉 l 中央倉庫包含所有依賴的軟件構件,引用單一的中央倉庫比引用多個獨立的本地庫要好 l 使用內部倉庫做clean構建時會快些,因為Maven構件是從內部服務器而不是從因特網上的ibiblio服務器獲取。 1.4 Maven構件庫的類型 l 本地倉庫位于開發者的機器,由
4、開發者維護,它從位于home/.m2 目錄的settings.xml文件中定義的Maven倉庫上同步,如果在pom.xml或setting.xml文件中沒有設置內部私有遠程倉庫,那么開發者機器上的這個本地倉庫就會從 上的公用Maven倉庫上同步。 l 內部私有遠程倉庫這是我們將要設置的倉庫,我們將改變maven 的pom.xml或settings.xml文件來使用這個庫。 l 外部公用遠程倉庫這是在上的外部公用倉庫,默認情況下,Maven從這個倉庫上同步。 l2.Maven倉庫概覽2.1 沒有Maven倉庫下的開發環境2.2 具有團隊內部遠程倉庫的開
5、發環境3. 本教程Maven倉庫的用例介紹l 在內部倉庫中創建2個子庫 l Ibiblio 緩存Ibiblio-cache 用于存儲從中下載的構件,可以公開訪問,它將從外部的ibiblio倉庫中同步 l 內部倉庫internal-maven-repository用于存儲團隊內部的構件,它不與任何外部倉庫同步,是團隊專有的構件庫 l 可以創建另一個子倉庫,這是可選的,用于存儲那些公用的但是在ibiblio上暫時沒有的構件,例如一些構件的新最版本,這個倉庫不與內部倉庫同步。我們可以稱它為第三方3rd-partyl 瀏覽遠程庫,最好是通過一個web瀏覽器l 在倉庫中搜索構件 l
6、 從版本控制系統中下載代碼,修改settings.xml指向內部倉庫并且做一次沒有任何手工干涉的clean構建l 向倉庫中安裝一個構件的新版本l 向倉庫中大批導入構件l 從倉庫中大批導出構件l 手動備份倉庫,設置定時自動備份任務4. Maven倉庫工具的選擇標準理想的Maven倉庫工具應該:l 開放源碼并且免費 l 提供管理工具 l 提供倉庫瀏覽器最好是web瀏覽器而不是桌面應用程序 l 可以部署到標準web服務器中例如Apache或Tomcat l 創建、編輯、刪除子庫的能力 l 批量導入/導出的工具,用來向構件庫或從構件庫移動構件 l 訪問控制工具和匿名只讀訪問 l 安裝和使用簡單 l 備
7、份功能 l 問題追蹤,論壇或其他獨立的信息來源 l 活躍的社區/開發者,這樣產品才能改進,bug才能修正5. 不同Maven倉庫工具的比較一些流行且免費的Maven倉庫工具有:l 標準Maven代理codehaus / l Dead simple Maven Proxy (DSMP) - http:/www.pdark.de/dsmp/ l Proximity - / l Artifactory - /sites/artifac
8、tory/latest/ 下面列出了一個比較:codehausDSMPProximityArtifactory管理工具否基本是是構件庫瀏覽器基本否是是部署到標準Web服務器是,但不可配置否是是(與Jetty綁定,支持Tomcat)子庫管理是是是是批量導入/導出構件否否否是安裝使用簡單是是(從代碼構建)是是(AJAX界面)備份功能否否否是(使用quartz和cron表達式)問題追蹤JIRA,IRC否Wiki issues TrackerJira issues Tracker(良好的在線文檔)研究過以上所有產品之后得出結論,Artifactory 擁有我們要的所有標準。Proximity看樣子也有
9、許多我們要的特性,我們將著眼于Artifactory 的使用。關于Artifactory 的其他方面:l 符合我們的需求 l Apache 2.0 許可 l 運行于JDK 1.6和Tomcat 6。Artifactory以war文件形式部署到Tomcatl 使用Derby數據庫來存儲構件,數據以一個已發布的知名的格式存儲l 所有構件可以被批量導出到本地庫然后導入到其他庫,因而易于將構件從一個倉庫工具移到另一個,它也使得Maven庫的升級非常容易 l 兼容Java Content Repository 標準(JSR-170)。 l 使用Lucene作為搜索引擎,倉庫可以被索引和重新索引 l Aj
10、ax界面l 易于定制界面 l 使用JIRA作為問題追蹤系統6. 設置Maven倉庫6.1 軟件需求 l Artifactory從/sites/artifactory/latest/下載和安裝,當前最新版本是1.2.1-rc1,Artifactory是一個可以被安裝到Tomcat中去的Web應用程序 l JDK 1.6 更多信息請參閱/sites/artifactory/latest/install.html l Tomcat 6 6.2 目錄結構 下載和解壓artifactory。目錄結構如下: 這些目錄是:l bac
11、kup 倉庫的備份,可以使用cron表達式設置備份策略,quartz定時調度程序在指定的時間里運行備份任務,備份時間間隔在ARTIFACTORY_INSTALLATION_FOLDER>/etc/artifactory.config.xml文件中指定 l bin 內置jetty 服務器的運行批處理文件 l data 包含derby數據庫文件,如果你想以一個空的構件庫開始,可以刪除這個目錄中的所有內容,在全新的artifactory 安裝中,這個目錄是空的。 l etc artifactory 的配置文件,有artifactory.config.xml 、jetty.xml 和log4j.
12、,properties l lib 包含所有依賴的jar文件 l logs 日志文件l webapps 包含war文件,它可以被拷貝到Tomcat中安裝。6.2 在Tomcat 6中部署 部署<ARTIFACTORY_INSTALLATION_FOLDER>/webapp目錄中的war文件到 <TOMCAT_INSTALLATION_FOLDER>/webapps目錄中,在jdk1.6和Tomcat 6環境下不需要改變tomcat的配置,Tomcat 6會檢測并部署它。當這個Web應用程序被部署的時候,需要這些信息:l 保存構件的數據庫的位置 l artifactory
13、 的xml配置文件的位置 l 備份目錄的位置 可以在一個配置文件中指定所有3個信息,在Tomcat啟動期間我們只需要指定artifactory的安裝目錄,artifactory會計算出其余的信息。可選的方法是使用jdbc設置好derby數據庫的連接并且在Web應用程序中配置好artifactory (通過在Web應用程序中包含artifactory.config.xml文件)。不管怎樣,這個方法是簡單的。artifactory 安裝目錄的位置可以被設置為一個環境變量,在Linux中,用.bash來輸出artifactory 安裝目錄的位置的腳本是:export JAVA_OPTS = -Dar
14、tifactory.home=/home/amangat/artifactory-1.2.1-rc1在Windows中,可以添加到Tomcat啟動選項中:6.3 設置Maven倉庫 建議的方法是在我們的Maven倉庫中創建3個庫(或子庫),它們是:l 內部私有倉庫private-internal-repository:這個倉庫包含僅在團隊內使用的構件,它們由開發者手動上傳,這個倉庫不與ibiblio 中的遠程倉庫同步,因為這個倉庫(或子倉庫)中的構件是團隊私有的。 l 第三方庫3rd-party:這個倉庫包含公有的但不在ibiblio服務器上的構件,例如,最新版本的尚不在ibiblio的組件或
15、jdbc驅動。這個倉庫不與ibiblio 同步,因為ibiblio 沒有這些jar。 l Ibiblio 緩存Ibiblio-cache:這個倉庫與ibiblio 倉庫同步,它是ibiblio 上的構件的緩存。 設置這三個倉庫,需要修改<ARTIFACTORY_INSTALLATION_FOLDER>/etc/artifactory.config.xml中的配置:<config xmlns:xsi="/2001/XMLSchema-instance" xmlns="http:/artifactory.jfrog.o
16、rg/xsd/1.0.0" xsi:schemaLocation="/xsd/1.0.0 /xsd/artifactory-v1_0_0.xsd"> <!- Backup every 12 hours -> <!-<backupCronExp>0 0 /12 * * ?</backupCronExp>-> <localRepositories> <localRepository> <key&
17、gt;private-internal-repository</key> <description>Private internal repository</description> <handleReleases>true</handleReleases> <handleSnapshots>true</handleSnapshots> </localRepository> <localRepository> <key>3rd-party</key> <de
18、scription>3rd party jars added manually</description> <handleReleases>true</handleReleases> <handleSnapshots>false</handleSnapshots> </localRepository> </localRepositories> <remoteRepositories> <remoteRepository> <key>ibiblio</key>
19、 <handleReleases>true</handleReleases> <handleSnapshots>false</handleSnapshots> <excludesPattern>org/artifactory/*,org/jfrog/*</excludesPattern> <url>/maven2</url> </remoteRepository> </remoteRepositories></config>
20、;啟動Tomcat并且輸入 http:/localhost:8080/artifactor下面是artifactory的首頁面:以用戶名admin和密碼password登錄,點擊瀏覽倉庫的鏈接,你可以查看倉庫的內容。7.配置Maven以使用新的倉庫7.1 配置Maven的settings.xml 文件Maven使用位于/.m2/settings.xml目錄的settings.xml文件來獲取Maven倉庫 ,如果沒有在該文件中指定倉庫,Maven默認使用上的倉庫, settings.xml文件必須被修改以使用新的倉庫:<profiles> <profil
21、e> <id>dev</id> <properties> <tomcat5x.home>C:/InstalledPrograms/apache-tomcat-5.5.20</tomcat5x.home> </properties> <repositories> <repository> <id>central</id> <url>http:/localhost:8080/artifactory/repo</url> <snapshots&g
22、t; <enabled>false</enabled> </snapshots> </repository> <repository> <id>snapshots</id> <url>http:/localhost:8080/artifactory/repo</url> <releases> <enabled>false</enabled> </releases> </repository> </repositories&
23、gt; <pluginRepositories> <pluginRepository> <id>central</id> <url>http:/localhost:8080/artifactory/repo</url> <snapshots> <enabled>false</enabled> </snapshots> </pluginRepository> <pluginRepository> <id>snapshots</id>
24、; <url>http:/localhost:8080/artifactory/repo</url> <releases> <enabled>false</enabled> </releases> </pluginRepository> </pluginRepositories> </profile></profiles>7.2 使用pom.xml配置Maven 也可以在項目的pom.xml文件中設置倉庫,下面是pom.xml范例文件:<project xmlns=&q
25、uot;/POM/4.0.0"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/POM/4.0.0/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>test</groupId><artif
26、actId>test</artifactId><packaging>jar</packaging><version>1.0-SNAPSHOT</version><name>test</name><url></url> <repositories> <repository> <id>central</id> <url>http:/localhost:8080/artifactory
27、/repo</url> <snapshots> <enabled>false</enabled> </snapshots> </repository> <repository> <id>snapshots</id> <url>http:/localhost:8080/artifactory/repo</url> <releases> <enabled>false</enabled> </releases> </
28、repository> </repositories> <pluginRepositories> <pluginRepository> <id>central</id> <url>http:/localhost:8080/artifactory/repo</url> <snapshots> <enabled>false</enabled> </snapshots> </pluginRepository> <pluginRepository&
29、gt; <id>snapshots</id> <url>http:/localhost:8080/artifactory/repo</url> <releases> <enabled>false</enabled> </releases> </pluginRepository> </pluginRepositories><dependencies> <dependency> <groupId>junit</groupId> &l
30、t;artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency></dependencies></project>7.3 使用Maven構件倉庫構建項目 在構建Maven項目的時候,所有的構件庫都會從新的倉庫下載,控件臺會顯示下載的過程:用瀏覽器登錄到新的構件倉庫,你會發現artifactory 已經下載并緩存了ibiblio上的構件。7.4 安裝構件到構件倉庫 可以通過Web界
31、面或Maven命令行安裝構件,通過Web界面來安裝更簡單更快,并且不需要修改任何配置。通過命令行安裝需要修改settings.xml配置文件,可以在其他腳本中使用。7.4.1 通過Web界面安裝構件安裝步驟如下:1. 上傳要部署的構件(jar 文件 或 pom 文件)2. 如果你上傳的是jar文件,Artifactory會為它創建pom文件 。上傳的時候你可以指定上傳到哪個倉庫。3. 上傳完后,上傳的構件與artifactory 自動創建的pom文件一起在倉庫中出現。7.4.1 能過Maven命令行安裝構件當用mvn clean install 命令的時候,Maven僅僅打包和安裝構件到本地倉
32、庫,要把它安裝到APH內部倉庫中,我們必須在settings.xml中添加一條額外的配置:<settings> <servers> <server> <id>organisation-internal</id> <username>admin</username> <password>password</password> </server> </servers></settings>安裝構件到內部Maven倉庫的命令是:mvn deploy:depl
33、oy-file -DrepositoryId=organisation-internal -Durl=http:/localhost:8080/artifactory/private-internal-repository-DgroupId=test -DartifactId=test -Dversion=1.1 -Dpackaging=jar -Dfile=target/test-1.1.jarrepositoryId必須與settings.xml中定義的服務器ID相匹配,url必須包含構件將要被安裝到的倉庫的名稱。新的構件會在倉庫中出現,并且artifactory 會自動為我們創建pom文
34、件。8. Artifactory 的其他特性8.1 備份構件倉庫 備份策略在 <ARTIFACTORY_INSTALLATION_FOLDER>/etc/artifactory.config.xml中指定,使用cron表達式來指定定時備份任務,配置備份任務的元素在下面的代碼清單中用高亮顯示出來了<config xmlns:xsi="/2001/XMLSchema-instance" xmlns="/xsd/1.0.0" xsi:schemaLocati
35、on="/xsd/1.0.0 /xsd/artifactory-v1_0_0.xsd"> <!- Backup every 12 hours -> <backupCronExp>0 0 /12 * * ?</backupCronExp> <localRepositories> <localRepository> <key>private-internal-repository</key> <description>Private internal repository</description> <handleReleases>true</han
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025標準國有企業員工勞動合同
- 2025年房屋買賣合同的履行與違約行為解析
- 2024年日用織物制品項目資金籌措計劃書代可行性研究報告
- 2025電子產品轉讓合同范本
- 2025年合同履行過程中的變更解析
- 2025網站設計服務合同范本
- 2025年北京市勞動合同模板
- 2025年杭州市勞動合同范本全文
- 2025短期勞動合同全面解析
- 2025網站建設合同協議模板
- 2025榆林能源集團有限公司招聘工作人員(473人)筆試參考題庫附帶答案詳解
- 銀行等安全保衛現場檢查要點清單
- 活動場地租賃與活動安全責任協議
- 2025年中考數學一輪專題復習(廣東)27講-與圓有關的計算【課件】
- 《數據統計與分析》課件
- 2024年河南職業技術學院單招職業適應性考試題庫必考題
- (二模)新疆維吾爾自治區2025年普通高考第二次適應性檢測 英語試卷(含答案詳解)
- 征信系統AI應用行業深度調研及發展戰略咨詢報告
- 書法藝術療愈在書法教育中的實踐與應用研究
- 射頻電路封裝設計與工藝實現方法研究
- 旅行社企業章程范本
評論
0/150
提交評論