3

私は Maven の初心者で、Maven を 1 週間勉強しており、Ant を 5 年間使用した経験があるので、問題なくスピードを出すことができます。maven.apache.org にあるすべてのドキュメントを 2 回読みました。数百ページを読みました。ドキュメントを読んで理解を深めるために、いくつかの異なる Maven アーキタイプを使用していくつかのテスト アプリを作成しました。今、私は新しいプロジェクトをセットアップしており、より細かい点が登場しています...

実行時に maven-compiler-plugin が最新リリースの 2.3.2 にアップグレードされない理由はわかっていると思います。

mvn versions:use-latest-release

しかし、回避策があるかどうか、または心配する必要があるかどうかを知る必要があります。まず、これが私の pom.xml の抜粋です。

        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <source>1.5</source>
                <target>1.5</target>
            </configuration>
        </plugin>

ご覧のとおり、バージョン 2.3.2 を指定しています。リポジトリ内のファイルを更新する必要があることを認識していない Maven に問題があるのではないかと考えて、mvn versions:use-latest-releases を実行しました。jar ファイルが ~/.m2/repository/org/apache/ にダウンロードされていることに気付きました。 maven/plugins/maven-compiler-plugin/ すなわち

ll ~/.m2/repository/org/apache/maven/plugins/maven-compiler-plugin/2.3.2
total 60
-rw-rw-r--. 1 pgarner pgarner 29176 Oct  7 21:29 maven-compiler-plugin-2.3.2.jar
-rw-rw-r--. 1 pgarner pgarner   335 Oct  7 21:29 maven-compiler-plugin-2.3.2.jar.lastUpdated
-rw-rw-r--. 1 pgarner pgarner    40 Oct  7 21:29 maven-compiler-plugin-2.3.2.jar.sha1
-rw-rw-r--. 1 pgarner pgarner  7329 Oct  7 21:29 maven-compiler-plugin-2.3.2.pom
-rw-rw-r--. 1 pgarner pgarner   335 Oct  7 21:29 maven-compiler-plugin-2.3.2.pom.lastUpdated
-rw-rw-r--. 1 pgarner pgarner    40 Oct  7 21:29 maven-compiler-plugin-2.3.2.pom.sha1
-rw-rw-r--. 1 pgarner pgarner   208 Oct  7 21:29 _maven.repositories

しかし、以下を実行すると、maven-compiler-plugin のバージョンが 2.0.2.SP1 のままであることが明らかになりました。

mvn help:describe -Dplugin=org.apache.maven.plugins:maven-compiler-plugin
/usr/java/jdk1.7.0
[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building RichFaces 4 Application 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-help-plugin:2.1.1:describe (default-cli) @ Patrac ---
[INFO] org.apache.maven.plugins:maven-compiler-plugin:2.0.2.SP1
Name: Maven Compiler Plugin
Description: Maven Plugins
Group Id: org.apache.maven.plugins
Artifact Id: maven-compiler-plugin
Version: 2.0.2.SP1
Goal Prefix: compiler

このプロジェクトを生成するために richfaces-archetype-simpleapp アーキタイプを使用したこと、およびプロジェクトに JBoss リポジトリを追加する必要があったことに注意して、次に考えたことは、RichFaces にプロジェクトが最新のコンパイラ、私は見てみました

~/.m2/repository/org/apache/maven/plugins/maven-compiler-plugin/maven-metadata-jboss-public-repository-group.xml

そして確かに、私は問題を見つけたと思います:

<latest>2.4-SNAPSHOT</latest>
<release>2.0.2.SP1</release>
<versions>
  <version>0.1-stub-SNAPSHOT</version>
  <version>2.0.2.SP1</version>
  <version>2.3.2-SNAPSHOT</version>
  <version>2.4-SNAPSHOT</version>
</versions>

では、RichFaces は maven-compiler-plugin バージョン 2.3.2 では使用できないということですか?

最新バージョンの maven-compiler-plugin を使用して、この新しいプロジェクトを開始したいと思います。スナップショットの使用を避け、リリースに固執したいと思います。バージョン 2.3.2 のエントリを上記の XML ファイル、つまり 2.3.2 に追加するのは完全に危険であると直感的に判断しました。私は正しいですか?それとも、JBoss-Maven リポジトリに maven-compiler-plugin のすべてのバージョンの完全なセットがないということですか?

私のオプションは何ですか?v. 2.0.2.SP1 を使用するだけで十分ですか? または、Maven に maven-metadata-jboss-public-repository-group.xml を無視するように依頼する方法や、Maven に JBoss リポジトリよりも Maven Central リポジトリを優先するよう依頼する方法はありますか?

4

1 に答える 1

1

ここにはかなりのものがあるので、分解してできる限り答えようとします...

実行時に maven-compiler-plugin が最新リリースの 2.3.2 にアップグレードされない理由はわかっていると思います。

その下のスニペットに基づいて、うまくいったようです。プラグインのコンパイル ページを確認したところ、実際には 2.3.2 が最新バージョンです。

これを実行すると:mvn help:describe -Dplugin=org.apache.maven.plugins:maven-compiler-plugin /usr/java/jdk1.7.0それがデフォルトだと思います。上記のプロジェクトで実行する場合mvn compile、指定したとおりに 2.3.2 を使用する必要があります。

バージョン 2.3.2 のエントリを上記の XML ファイル、つまり 2.3.2 に追加するのは完全に危険であると直感的に判断しました。私は正しいですか?

問題を探している場合や自分が何をしているのか本当にわかっている場合を除き、メタデータ ファイルはそのままにしておいてください :)

私のオプションは何ですか?v. 2.0.2.SP1 を使用するだけで十分ですか? または、Maven に maven-metadata-jboss-public-repository-group.xml を無視するように依頼する方法、または Maven に JBoss リポジトリーよりも Maven Central リポジトリーを優先するよう依頼する方法はありますか?

プラグインの 2.0.2.SP1 は使用されていないと思います。あったとしても、プラグインのスナップショットを使用することは、IMO ではそれほど大したことではありません。依存関係のスナップショットを使用する場合は、注意が必要です。

どのリポジトリが何をどの順序で解決するかをオーバーライドする方法があると確信していますが、この場合にどれだけ役立つかはわかりません。

これが役立つことを願っています。

于 2012-01-30T18:07:09.270 に答える