2014-12-24 4 views
4

Я нахожусь в корпоративной сети, поэтому для получения зависимостей мы используем Nexus. Grails repo был добавлен в репозитории nexus, поэтому теперь все, что осталось, - это настроить grails на использование nexus.Отладка Grails управляет «обновлениями-обновлениями» с maven проблемами с Nexus

Для разработки проектов Java Maven мне нужно было указать, какой файл settings.xml следует обратить внимание, поскольку URL-адрес Nexus и учетные данные были сохранены там.

Теперь мы переход на Grails и при создании нового проекта Grails висит Настройка класса-путь в течение приблизительно 200 секунд (как он настроен тайм-аут после 200 секунд), а затем говорит:

Resolve error obtaining dependencies: Failed to read artifact descriptor for jline:jline:jar:2.12 (Use --stacktrace to see the full trace) 
Error | 
Required Grails build dependencies were not found. This is normally due to internet connectivity issues (such as a misconfigured proxy) or missing repositories in grails-app/conf/BuildConfig.groovy. Please verify your configuration to continue. 
Process was killed 

Теперь это, вероятно, проблема с конфигурацией репо, однако я не могу правильно отладить это.

Я пыталась дозвониться grails refresh-dependencies --stacktrace, я попытался изменить протоколирование с error к debug и trace в Config.groovy. Пробовал регистрацию настроек до verbose в BuildConfig.groovy (но это для Айви, и мы используем Maven, поэтому, конечно, он ничего не делает), и теперь я не уверен, что делать.

Если это помогает, вот мой текущий конфиг РЕПО в BuildConfig.groovy:

repositories { 
    //inherits true // Whether to inherit repository definitions from plugins  

    grailsPlugins() 
    grailsHome() 
    mavenLocal() 

    mavenRepo(id:'nexusconf', url:"https://nexusurl/repository/rootrepo/") { 
     auth username: "user", password: "pass" 
    } 
    //grailsCentral() 
    //mavenCentral() 
    // uncomment these (or add new ones) to enable remote dependency resolution from public Maven repositories   
    //mavenRepo "http://repository.codehaus.org" 
    //mavenRepo "http://download.java.net/maven/2/" 
    //mavenRepo "http://repository.jboss.com/maven2/" 
} 
+1

Какое значение вы имеете для 'grails.project.dependency.resolver' в' BuildConfig'? Это 'maven' или' плющ'? – dmahapatro

+0

@dmahapatro maven – MrPlow

ответ

2

Я думаю, что это зависит от того, какой версии Грааль вы используете и используете ли вы эфир или плющ для разрешения зависимостей (набор используя grails.project.dependency.resolver в BuildConfig). В соответствии с документацией grails 2.4.4, для аутентификации с помощью эфира, необходимо установить конфигурацию в BuildConfig, а также в USER_HOME/.grails/settings.groovy. Для аутентификации с помощью Ivy конфигурация выполняется исключительно в USER_HOME/.grails/settings.groovy.

Вот что говорит документация:


Аутентификация с Эфира

Для аутентификации с Эфира вы можете либо определить полномочия по определению репозитория:

mavenRepo(url:"http://localhost:8082/myrepo") { auth username: "foo", password: "bar" }

Или вы можете указать идентификатор в репозитории:

mavenRepo(id:'myrepo', url:"http://localhost:8082/myrepo")

А затем объявить свои полномочия в USER_HOME/.grails/settings.groovy:

grails.project.dependency.authentication = { credentials { id = "myrepo" username = "admin" password = "password" } }

Аутентификация с Ivy

Если ваше хранилище требует аутентификации, вы можете настроить это с использованием блока учетных данных:

credentials { realm = ".." host = "localhost" username = "myuser" password = "mypass" }

Это может быть помещено в ваш файл USER_HOME/.grails/settings.groovy, используя grails.project.ivy.Настройка аутентификации:

grails.project.ivy.authentication = { credentials { realm = ".." host = "localhost" username = "myuser" password = "mypass" } }

Here's the documentation in its entirety

+0

Мне уже удалось исправить мою проблему, поместив учетные данные в settings.groovy, однако мне кажется, что отладка управления зависимостями с maven (Aether) сложна. Если я прочитал это правильно, есть журнал управления зависимостями, но только для Айви. Как мне отлаживать/регистрировать управление зависимостями Aether/Maven? – MrPlow

+0

Я думаю, что он настроен в файле settings.groovy. Попробуйте поместить 'log ''' в определение 'grails.project.dependency.authentication', а также' credentials'. –

+0

Я пробовал, но, к сожалению, ничего не сделал. Насколько я видел, журнал Aether не может быть найден нигде в документах grails, что заставляет меня думать, что это невозможно, или это было упущено. – MrPlow

Смежные вопросы