如何设置下载到公共本地maven存储库

时间:2016-02-11 17:47:20

标签: maven

我希望在构建服务器上设置一个公共的本地maven存储库,dev组中具有该帐户的帐户的所有用户在使用maven运行构建时都能够访问。

只需添加< localRepository>即可轻松完成。标签。但问题是从中央下载到本地存储库的文件的权限是-rw-r-----,而我想要-rw-rw----

是否有maven设置执行此操作或需要系统设置?

更新:请原谅我的生活。 课程我查看了官方的Maven网站。没有与我的用例对话的文档。我看了herehere。有< filePermissions>和< directoryPermissions> < server>的元素element,但它们不包括从服务器下载的文件的权限。

更新2:这不是持续集成意义上的“构建机器”或类似的东西。在这里,开发人员可以进行“本地化”测试构建,从中可以轻松访问开发服务器,这是本地机器无法提供的。这里的目的是节省磁盘空间。这个用例在Maven documentation中有特别提及,其中说:

  

localRepository:此值是此构建系统的本地路径   库。默认值为$ {user.home} /.m2 / repository。这个   element对于允许所有的主构建服务器特别有用   登录用户从公共本地存储库构建。

但是没有提到下载文件权限的问题。

1 个答案:

答案 0 :(得分:2)

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

在存储库下创建的每个文件或目录都属于该组。

现在,使用此内容创建文件/ etc / mavenrc,或者如果它不存在则添加到该文件

umask 0007

mvn可执行文件“source”的文件(./etc/mavenrc),以便在maven运行时umask有效但仅在maven进程的持续时间内,之后umask恢复为其默认值。此umask阻止其他用户查看该文件,但允许该组成员具有所有权限(包括写入权限,这是我们所追求的)。

因此,maven写入此存储库的所有文件都是可写组的。

如果您希望非组用户可以读取这些文件,那么 / etc / mavenrc中的umask 0003可以解决问题。