这是一次每隔几个月的问题。 我做了一些Grails升级,该应用无法从我的安全艺术存储库中解析我的工件。这次我做了升级到Grails 2.4.0,还有问题存在。 我配置了我的存储库,如Grails文档(似乎非常过时),但Grails无法解决我的回购依赖项。它没有正确验证。

所以我的最终问题已经提出了许多人:

如何配置Grails(当前2.4.0)使用Maven作为依赖性 - 解析程序,以便使用私有Maven返回基地(Artifactory)以及正确的身份验证?我必须写信给我的buildconfig以使其工作?

这不起作用:

if (Environment.current == Environment.PRODUCTION) {

    if (grails.project.dependency.resolver == "maven") {
        mavenRepo "http://repo.myRepoHost.com/plugins-release-local/", {
            auth([
                username: "reader",
                password: "readerPw"
            ])
        }
    }

}
.

有帮助吗?

解决方案 2

我可以解决这个问题,发现我为什么我始终遇到需要身份验证的艺术存储库问题。

有一个http标头状态问题与artifactory。 如果您将整个艺术私有的私人带有管理员 - > Security-> General->允许匿名访问复选框(未选中)所有作品,因为artifactory响应HTTP状态代码“需要401授权”,并且Grails与配置的另一项请求授权凭证,适用良好。

如果您检查了复选框(因为您拥有像我这样的私人和公共存储库),您会获得介绍问题,因为工人不再使用401个状态代码进行响应。相反,它即使是响应“404找不到” 工件在存储库中,只有匿名无法访问它。在Access.log中,您可以在这种情况下找到“下载拒绝”,并且由于404状态代码,Grails不会使用已配置的凭据进行第二个请求。

因此,您可以为公钥和私有存储库创建单独的艺术实例,或者我们必须为Grails实现新的配置选项,以支持所选的存储库上的“始终验证”功能。我会通过Grails Bugtracker建议给Grails开发团队,我也将寻找漫画开发人员来构建解决方法选择。

其他提示

以下设置为我的artifactory

工作
grails.project.dependency.resolver = "maven"
grails.project.ivy.authentication = {
    repositories {
        mavenRepo('http://localhost:8081/artifactory/grails-remote') {
             auth([
                realm: "Artifactory Realm",
                username: 'user',
                password: 'pass'
            ])
        }
    }
}

grails.project.dependency.resolution = {
    ...
    repositories {
        inherits true
    }
    ...
}
.

请注意,存储库未在grails.project.dependency.resolution部分中定义。
此外,您必须确保“阅读器”用户具有所需的“插件 - 释放本地”存储库的权限。

测试存储库设置的好方法是检查artifactory请求/访问日志和监视Grails执行的请求。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top