2013-02-23 3 views
2

(Обновлено название вопроса из-за обновленного вопроса/проблемы, см. Мои примечания по обновлению внизу!):Maven build для Grails 2.2.0 приложение не работает с JDK 1.7: Не удалось найти артефакт com.sun: tools: jar: 1.6

У меня есть проект Grails 2.2.0, созданный pom.xml для него через 'grails create-pom com.mycompany'.

pom.xml: http://pastebin.com/AVahZjZF

Без изменений в pom.xml, я бегу 'mvn package' с JDK 1.7 и получать ошибку ниже, в то время как с JDK 1.6 он будет работать нормально.

$ java -version 
java version "1.7.0_11" 
Java(TM) SE Runtime Environment (build 1.7.0_11-b21) 
Java HotSpot(TM) 64-Bit Server VM (build 23.6-b04, mixed mode) 

$ mvn -version 
Apache Maven 3.0.3 (r1075438; 2011-03-01 01:31:09+0800) 
Maven home: /usr/share/maven 
Java version: 1.7.0_11, vendor: Oracle Corporation 
Java home: /Library/Java/JavaVirtualMachines/jdk1.7.0_11.jdk/Contents/Home/jre 
Default locale: en_US, platform encoding: UTF-8 
OS name: "mac os x", version: "10.7.4", arch: "x86_64", family: "mac" 

$ echo $JAVA_HOME 
/Library/Java/JavaVirtualMachines/jdk1.7.0_11.jdk/Contents/Home 

$ mvn package 
[INFO] Scanning for projects... 
[ERROR] The build could not read 1 project -> [Help 1] 
[ERROR] 
[ERROR] The project com.company:company-projectname:0.1 (/Users/myuser/Projects/com.company.web/pom.xml) has 2 errors 
[ERROR]  Unresolveable build extension: Plugin org.grails:grails-maven-plugin:2.2.0 or one of its dependencies could not be resolved: Could not find artifact com.sun:tools:jar:1.6 at specified path /Library/Java/JavaVirtualMachines/jdk1.7.0_11.jdk/Contents/Home/jre/bundle/Classes/classes.jar -> [Help 2] 
[ERROR]  Unknown packaging: grails-app @ line 8, column 16 
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. 
[ERROR] Re-run Maven using the -X switch to enable full debug logging. 
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles: 
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/ProjectBuildingException 
[ERROR] [Help 2] http://cwiki.apache.org/confluence/display/MAVEN/PluginResolutionException 

Я вижу, что версия Java установлена ​​на 1,6 в Grails-Maven-плагин-2.2.0.pom, таким образом, мой вопрос сейчас: как сделать Maven построить для моего Grails проекта работы с JDK 1.7 ? Похоже, что правильный исходный и целевой уровень установлен в maven-compiler-plugin (установлен в 1.6).

Папка ~/.m2/хранилище/Grails-Maven-плагин:

enter image description here

Моя среда:

  • Maven 3.0.3
  • Grails 2.2.0
  • GRAILS_HOME установлен в мой каталог Grails
  • JAVA_HOME установлен в мой JDK 1.7 Папка
  • JDK 1.7.0_11

Соответствующие ява инструменты раздел в моем pom.xml:

<profiles> 
    <profile> 
     <id>tools</id> 
     <activation> 
      <property> 
       <name>java.vendor</name> 
       <value>Sun Microsystems Inc.</value> 
      </property> 
     </activation> 
     <dependencies> 
      <dependency> 
       <groupId>com.sun</groupId> 
       <artifactId>tools</artifactId> 
       <version>${java.version}</version> 
       <scope>system</scope> 
       <systemPath>${java.home}/../lib/tools.jar</systemPath> 
      </dependency> 
     </dependencies> 
    </profile> 
</profiles> 

ответ

3

Вроде бы известная проблема, и, по сообщениям все еще происходит в Grails 2.2.0 на Mac OS X.

http://jira.grails.org/browse/MAVEN-186

+0

У меня тоже проблема. Grails v2.2 и Maven v3.0.3. Какова была ваша работа для этого? –

+0

Использование JDK 1.6 на данный момент. –

2

UPDATE

Как упомянуто @Mathias это была ошибка в плагине Grails Maven. Проблема была исправлена, и все отлично работает в Grails 2.2.1.


Я могу определенно использовать МВНЫ пакета здесь с Grails 2.2.0 из Homebrew * GRAILS_HOME * неустановленный.

Моя конфигурация - Maven 3.0.3 с Grails 2.2.0, OSX.

Я создал «пустое» приложение для ванили без каких-либо проблем и упаковал его.

grails create-app stf && cd stf 
grails create-pom com.rimerosolutions.grails 
mvn package 

В моем pom.xml, версия Грааль-Maven-плагин установлена ​​в $ {grails.version}.

Я запускаю OSX, похоже, что вы тоже запускаете его.

  • Вы используете частный репозиторий maven? Если да, попробуйте дважды проверить артефакт grails-maven-plugin.
  • Если нет, попробуйте очистить ~/.m2/repository содержимое для grails-maven-plugin. rm -rf этот конкретный кеш плагина.
+0

Спасибо за подсказки. У меня такая же среда, как и вы, кроме меня есть набор GRAILS_HOME. Но я только что узнал, проблема в том, что я запускал JDK 1.7, который, похоже, не работает. Я просто перешел на JDK 1.6, очистил содержимое grails-maven-plugin, и теперь он работает. –

+0

Спасибо за подсказку, см. Мой обновленный вопрос выше. –

+0

btw: Я попробовал 3 линии с * JDK 1.7 * выше, чтобы создать пустое приложение для ванили, получив ту же ошибку. Не рекомендуется ли вообще использовать JDK1.7 с граалом? (Извините, Grails n00b). Я посмотрел на http://grails.1312388.n4.nabble.com/Grails-amp-Java-7-td4638502.html и http://grails.1312388.n4.nabble.com/Grails-amp-Java-7 -td4638502.html уже, но говорят, что 1.7 должно быть хорошо. –

0

Проблема заключается в том, что grails-maven-plugin говорит, что ему нужно что-то в JDK6:

tail -n20 ~/.m2/repository/org/grails/grails-maven-plugin/2.0.3/grails-maven-plugin-2.0.3.pom 
    <profile> 
     <id>jdk_mac</id> 
     <activation> 
      <os> 
       <family>mac</family> 
      </os> 
     </activation> 
     <dependencies> 
      <dependency> 
       <groupId>com.sun</groupId> 
       <artifactId>tools</artifactId> 
       <version>1.6</version> 
       <scope>system</scope> 
       <systemPath>${java.home}/bundle/Classes/classes.jar</systemPath> 
      </dependency> 
     </dependencies> 
    </profile> 
</profiles> 

решение скопировать JDK6 classes.jar в текущей версии JDK. К счастью, JDK7 использует другую структуру каталогов, поэтому конфликта не должно быть.

sudo mkdir -p /Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/jre/bundle/Classes 
sudo cp /System/Library/Frameworks/JavaVM.framework/Versions/1.6/Classes/classes.jar /Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/jre/bundle/Classes/