2

(質問/問題が更新されたため、質問のタイトルが更新されました。下部にある私の更新ノートを参照してください!):

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

grails-maven-plugin-2.2.0.pom で Java のバージョンが 1.6 に設定されていることがわかりました。したがって、私の質問は次のとおりです。grails プロジェクトの maven ビルドを JDK 1.7 で動作させるにはどうすればよいですか? 正しいソースとターゲットのレベルが maven-compiler-plugin (1.6 に設定) に設定されているように見えます。

フォルダ ~/.m2/repository/grails-maven-plugin:

ここに画像の説明を入力

私の環境:

  • Maven 3.0.3
  • グレイル 2.2.0
  • GRAILS_HOME を Grails ディレクトリに設定
  • JAVA_HOME を JDK 1.7 フォルダーに設定
  • JDK1.7.0_11

私のpom.xmlの関連するJavaツールセクション:

<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>
4

3 に答える 3

3

これは既知の問題のようで、Mac OS X の Grails 2.2.0 でもまだ発生していると報告されています。

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

于 2013-02-24T07:04:06.560 に答える
2

アップデート

@Mathias が述べたように、これは Grails Maven プラグインのバグでした。この問題は修正され、Grails 2.2.1 ではすべて正常に動作します。


ここでは、*GRAILS_HOME* が設定されていない Homebrew の Grails 2.2.0 でmvn パッケージを確実に使用できます。

私の構成は、OSX で Grails 2.2.0 を使用した Maven 3.0.3 です。

問題なく「空の」バニラ アプリケーションを作成し、パッケージ化しました。

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

私のpom.xmlでは、 grails-maven-pluginのバージョンが${grails.version} に設定されています。

私はOSXを実行していますが、あなたもそれを実行しているようです。

  • プライベート Maven リポジトリを使用していますか? その場合は、そこにある grails-maven-plugin アーティファクトを再確認してください。
  • そうでない場合は、 grails-maven-plugin の~/.m2/repositoryの内容をクリアしてみてください。rm -rfその特定のプラグイン キャッシュ。
于 2013-02-23T20:25:33.170 に答える