Как настроить Grails 2.4.0 для разрешения артефактов от JFROG Artifactory с аутентификацией?

StackOverflow https://stackoverflow.com//questions/24000409

Вопрос

Это проблема, которая возникает каждые несколько месяцев. Я делаю обновления Grails, и приложение не может решить мои артефакты от моего обеспеченного репозитория артефактов.На этот раз я сделал модернизацию для Grails 2.4.0, и снова проблема существует. Я настроил свой репозиторий, как описано в документации Grails (что, кажется, очень устарела), но Grails не может разрешить мои зависимости от нашего репо.Это не аутентифицируется правильно.

Так что мои последние вопросы, которые уже просили многие люди:

Как настроить Grails (текущий 2.4.0) с Maven в качестве зависимости - Resolver для работы с частным рефизием 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 с артефактором. Если вы сделали весь свой артефакторий с помощью Admin-> Security-> General-> Разрешить флажок Anonymous Access (не проверяемый) Все работает, потому что Artifactory отвечает с помощью кода состояния HTTP «401 требуется для авторизации», и Grails делает другой запрос с настройкой Учетные данные авторизации, которые отлично работают. Не проверьте флажок

Если вы проверили флажок (потому что у вас есть как явные, так и публичные репозитории, как я), вы получаете вступительные проблемы, потому что артефактория больше не отвечает с кодом состояния 401. Вместо этого он отвечает «404 не найден», даже если Артефакт находится в репозитории, и только аноним не имеет доступа к нему. В Access.Log вы можете найти «Скачать запрещено» в этом случае и Grails не делает второй запрос с настроенными учетными данными из-за кода состояния состояния 404. Checkbeed checkbox

Так что вы должны создать отдельные артефакторы для ваших публичных и частных репозиториев или мы должны реализовать новую опцию конфигурации для Greails для поддержки функции «всегда аутентификации» на выбранных репозиториях. Я предложу это команде разработки Grails через Grails Bugtracker, и я также буду искать разработчиков артефакторы для создания варианта обходного пути.

Другие советы

Следующая настройка работает для меня с артефактором

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
    }
    ...
}
.

Обратите внимание, что репозиторий не определен в разделе «Генеракодицетагкод».
Кроме того, вы должны убедиться, что пользователь «Reader» имеет необходимые разрешения для репозитория «Release Plugins-Local».

Хороший способ проверить настройку репозитория проверяет журнал Artifactory запроса / доступа и мониторинга для запросов, выполняемых Grails.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top