2016-02-11 88 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将会有效。