2014-09-18 22 views
1

首先,我是新來構建自動化和依賴管理工具的,因此請在我身上輕鬆一點!爲公司環境設置內部Maven資源庫

我目前概念項目的證明使用下列資產工作:

  • Spring框架4.0.6
  • 春季安全3.2.4
  • 春LDAP 2.0.2
  • 春天批次3.0.1
  • Spring Security 3.2.4
  • Thymeleaf 2.1.3
  • 服務器是JBoss應用服務器7.2(EAP技術預覽版)

起初我從mvnrepository.com手動下載所有的JAR我開始這個項目,但經過一段時間它變得非常複雜,鋪天蓋地地管理所有傳遞依賴自己,所以下面是概念證明的下一個要求:構建自動化和依賴管理工具。

我在企業環境中工作,因此連接到互聯網以始終下載依賴項不是一種選擇。我們必須有一些內部的東西,然後整個企業的開發人員會從中獲得它們的依賴關係。

我們還沒有在Maven或Gradle之間建立起我們的選擇。我們的目標是使用它們,然後選擇我們喜歡的。我知道Gradle使用/支持Maven倉庫,這就是爲什麼我添加了Gradle標籤以獲得Gradle用戶的關注。

所以,我想知道如何在沒有像Archiva或Artifactory這樣的倉庫管理器的情況下設置一個內部的maven倉庫。我公司環境中使用的每一項資產都必須經過嚴格的審批流程,所以我真的想節省一些時間並專注於Spring和Maven或Gradle。

我的概念驗證必須在Windows環境下運行,所以我的第一個想法是讓它在具有HTTP功能的Windows Server(IIS?)上運行。在我的pom.xml/build.gradle中,我可以指向該存儲庫而不是Maven Central。

基本上,我需要在我的內部存儲庫中克隆與上面列出的所有資產相關的Maven Central結構。然後,我會將一些內部的館藏轉換成Maven或Gradle項目,然後將它們發佈到同一個存儲庫。

我想開始一個簡單的Maven項目,然後添加Spring的依賴於它,其次是MVN編譯命令,但我必須承認,我覺得很難找出依賴性/我需要從獲取文件夾.m2/repository文件夾在我的本地驅動器上。 Maven似乎將自己的依賴關係放在該文件夾中,所以我不想將它們無用地放在我的內部存儲庫中。可能有更好的方法來實現我的目標。

您的幫助和指導將不勝感激。

謝謝

查爾斯

+0

這聽起來每個正面都是病態的。如果您確實需要審批流程,我強烈推薦使用Nexus,而不是嘗試推出自己的產品,這會變得脆弱並且成爲維護噩夢。並避免在Windows上部署;無論如何,回購服務器應該是自己的專用主機。 – chrylis 2014-09-18 15:54:29

+0

答案是肯定的,我確實需要審批流程,而現在我僅限於使用JBoss和PostgreSQL的Windows VM。這僅僅是爲了證明概念。它會在幾次之後分開。我知道這聽起來很有病態,但不幸的是我需要這樣做,就像我猜想的任何大企業環境一樣。 – 2014-09-18 16:44:53

+2

Nexus不需要JBoss或數據庫,只需要一個JVM。 – chrylis 2014-09-18 17:53:03

回答

1

.m2/repository文件夾 Maven倉庫。如果你只是想出一個概念證明,那麼你可以堅持使用本地的Maven緩存。它不會從Maven Central下載任何內容,除非遇到無法在緩存回購中找到的依賴關係。

如果這一點很重要,你有一個共享庫,但它只是用於測試/評估目的,那麼你甚至可以複製緩存回購到共享驅動器或東西,使用file:// URL在pom.xml聲明庫。