2016-02-11 66 views
-1

我希望建立一個構建服務器上常見的本地倉庫這與dev組中的服務器上的帳戶的所有用戶將能夠訪問運行與建造時下載到普通的本地倉庫中文件的權限行家。如何設置

這很容易做得不夠,你只需添加一個<localRepository>標籤。但問題是,從中央下載到本地存儲庫的文件的權限爲-rw-r-----,而我想要-rw-rw----

有沒有做這個還是需要一個系統設置一個Maven設置?

更新:對不起,我的生活。 課程我看了官方的Maven網站。沒有與我的用例對話的文檔。我看了herehere。有<文件權限>和<目錄權限>元素爲<服務器>元素,但它們不涵蓋從服務器下載的文件的權限。

更新2:這不是持續集成或類似意義上的「構建機器」。這是一個開發人員可以做「本地化」測試版本的地方,從中可以輕鬆訪問開發服務器,這是本地機器無法實現的。這裏的目的是節省磁盤空間。而且這種使用情況是Maven documentation它說特別提到

localRepository:這個值是此版本系統的本地 庫的路徑。默認值是$ {user.home} /。m2/repository。這個 元素對於主構建服務器特別有用,允許所有登錄用戶從一個公共的本地存儲庫中構建所有 。

但下載的文件權限的問題是無處提及。

+1

爲什麼用戶可以訪問到存儲庫是在構建服務器?使用一個存儲庫管理器,爲整個公司提供這樣的事情... – khmarbaise

+0

我想我並不清楚。這是一家大型企業的小型組織的本地構建服務器。通過「構建服務器」,我的意思是一個服務器,幾個開發人員可以訪問這些服務器以進行本地測試構建,並且可以訪問其他開發服務器。它不是一個CI型構建服務器。我們有一個企業聯繫,但看到沒有必要重複所有常用罐子的本地建造的副本。 –

回答

2
cd {MAVEN_HOME} 
find repository -type d | xargs chmod g+s 

在存儲庫下創建的每個文件或目錄都屬於該組。

現在,創建文件/ etc/mavenrc與此內容或添加到它,如果不存在

umask 0007 

的MVN可執行的「源」的文件(./etc/mavenrc),所以它在maven運行期間umask有效,但僅在maven進程期間有效,之後umask將恢復爲默認值。這個umask可以防止其他用戶看到該文件,但是允許該組的所有成員擁有全部權限(包括寫權限,這就是我們之後的權限)。

因此,所有maven寫入這個倉庫的文件都是可寫組的。

如果您希望文件可以被非羣組用戶讀取,那麼/ etc/mavenrc中的 umask 0003將會有效。