2012-07-19 3 views
2

Я часами изо всех сил пытаюсь понять это. Всякий раз, когда я пытаюсь выполнить какие-либо действия для моего недавно созданного проекта Grails (со свежим Grails установки), я получаю сообщение об ошибке:Ошибка при загрузке BuildConfig (Grails 2.1.0)

Error There was an error loading the BuildConfig: ivy pattern must be absolute: 
${HOME}/.m2/alpha/repository/[organisation]/[module]/[revision]/[module]-[revision](- 
[classifier]).pom (Use --stacktrace to see the full trace) 

я могу сделать вывод, что есть проблема с моей установкой, но его как я сказал, я не уверен, что могло бы вызвать эту проблему.

Я запускаю Win7. Любая помощь приветствуется.

EDIT:

grails.servlet.version = "2.5" // Change depending on target container compliance (2.5 or 3.0) 
grails.project.class.dir = "target/classes" 
grails.project.test.class.dir = "target/test-classes" 
grails.project.test.reports.dir = "target/test-reports" 
grails.project.target.level = 1.6 
grails.project.source.level = 1.6 
//grails.project.war.file = "target/${appName}-${appVersion}.war" 

grails.project.dependency.resolution = { 
    // inherit Grails' default dependencies 
    inherits("global") { 
     // specify dependency exclusions here; for example, uncomment this to disable ehcache: 
     // excludes 'ehcache' 
    } 
    log "error" // log level of Ivy resolver, either 'error', 'warn', 'info', 'debug' or 'verbose' 
    checksums true // Whether to verify checksums on resolve 

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

     grailsPlugins() 
     grailsHome() 
     grailsCentral() 

     mavenLocal() 
     mavenCentral() 

     // uncomment these (or add new ones) to enable remote dependency resolution from public Maven repositories 
     //mavenRepo "http://snapshots.repository.codehaus.org" 
     //mavenRepo "http://repository.codehaus.org" 
     //mavenRepo "http://download.java.net/maven/2/" 
     //mavenRepo "http://repository.jboss.com/maven2/" 
    } 
    dependencies { 
     // specify dependencies here under either 'build', 'compile', 'runtime', 'test' or 'provided' scopes eg. 

     // runtime 'mysql:mysql-connector-java:5.1.20' 
    } 

    plugins { 
     runtime ":hibernate:$grailsVersion" 
     runtime ":jquery:1.7.1" 
     runtime ":resources:1.1.6" 

     // Uncomment these (or add new ones) to enable additional resources capabilities 
     //runtime ":zipped-resources:1.0" 
     //runtime ":cached-resources:1.0" 
     //runtime ":yui-minify-resources:0.1.4" 

     build ":tomcat:$grailsVersion" 

     runtime ":database-migration:1.1" 

     compile ':cache:1.0.0.RC1' 
    } 
} 
+0

Было бы полезно увидеть ваш BuildConfig. – Gregg

+0

@Gregg Я обновил сообщение с помощью моего BuildConfig.groovy –

ответ

3

Проблема решена в настоящее время.

Это была проблема Maven, которую я не рассматривал вначале. По какой-то причине тег localRepository в /Users/USERNAME/.mp2/settings.xml не смог разрешить путь к HOME, поэтому замена $ {HOME} на C:/Users/USERNAME сделала трюк. Странно, но сейчас это работает. Если у кого есть лучшее решение, дайте мне знать!

+0

Привет, Бен, я думаю, что ваш вывод неверен. Это все еще проблема Ivy, поскольку вы не запускаете сборку Apache Maven. Обычный Maven сможет разрешить параметризованный $ {user.home}, в то время как Grails фактически использует Ivy, пытаясь разрешить, но потерпеть неудачу. –

0

У меня тоже такая же проблема. Я думаю, что это не проблема Maven, это проблема Apache Ivy.

Я думаю, что Apache Maven 2/3 хорошо работает, это просто, что Apache Ivy не выбрал правильную папку Maven. Apache Ivy не расширил $ ​​{user.home}, как должен.

0

Я решил это, установив переменную окружения M2_REPO в абсолютный путь. На Linux:

export M2_HOME=/home/chris/.m2/repository/ 

На окнах вы можете установить переменные окружения в диалоговом окне System Properties (Свойства ярлыка для системы является WindowsKey + PauseKey). Перейти к категории Характеристики системы ->Продвинутый ->Переменные среды.

1

Мое решение было немного по-другому:

(1) Создать переменную, которая указывает на ваше .m2 места в хранилище:

def localMavenRepo = "file://" + new File(System.getProperty('user.home'), '.m2/repository').absolutePath 

(2) Создание хранилища запись:

repositories { 
    ... 
    mavenRepo name: 'Local', root: localMavenRepo 
} 
+0

Это сработало. Я прокомментировал эти строки: mavenLocal(); mavenCentral() и добавлена ​​локальная декларация mavenRepo. В качестве альтернативы (для быстрого тестирования) кто-то мог просто прокомментировать mavenLocal() и удаленно обновить (не рекомендуется хранить его так). – atas

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