4

いくつかのモジュールに分割された大きなMavenプロジェクトがあります。

私は、maven で pmd (コード品質チェック) モジュールを提供することにしました。

コマンドを使用してpmdモジュールをテストしようとすると

mvn pmd:pmd

次の種類の警告が表示されます。

  • JDK 1.5 モードで実行しない限り、ジェネリックを使用できません!
  • JDK 1.4 モードで実行中はアノテーションを使用できません!
  • JDK 1.5 より前のターゲットでは enum をキーワードとして使用できない

何らかの理由で、maven が jdk 1.4 を使用してプロジェクトをコンパイルしているようです。

java -version出力:

java version "1.7.0_05"
OpenJDK Runtime Environment (IcedTea7 2.2.1) (Gentoo build 1.7.0_05-b21)
OpenJDK 64-Bit Server VM (build 23.0-b21, mixed mode)

私はgentoo Linuxを使用しています。

Linux ufk-work 3.5.2-gentoo #1 SMP Sun Aug 19 18:58:32 IDT 2012 x86_64 Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz GenuineIntel GNU/Linux

mvn -version出力:

Apache Maven 3.0.4 (r1232337; 2012-01-17 10:44:56+0200)
Maven home: /usr/share/maven-bin-3.0
Java version: 1.7.0_05, vendor: Oracle Corporation
Java home: /usr/lib64/icedtea7/jre
Default locale: en_US, platform encoding: ANSI_X3.4-1968
OS name: "linux", version: "3.5.2-gentoo", arch: "amd64", family: "unix"

Mavenが1.4ではなくjdk 1.7用にコンパイルされるようにする方法はありますか?

次の URL にあるように、 maven -compiler-plugin の使用例をググって見つけました。15または16互換/

残念ながら、結果はまったく同じです。

この問題に関する情報をいただければ幸いです。

どうもありがとうございます!

クフィル

アップデート

メインの pom.xml に maven-compiler-plugin と maven-pmd-plugin を追加しようとしましたが、結果はまったく同じです。

更新された pom.xml は、http://bpaste.net/show/41166/ で表示できます

4

2 に答える 2

7

必要なのは、PMD のターゲット バージョンを伝えることです。

<build>
  <pluginManagement>
    <plugins>
      <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-pmd-plugin</artifactId>
      <version>2.7.1</version>
      <configuration>
          <targetJdk>1.7</targetJdk>
          <rulesets>
              <ruleset>tools/pmd-rules.xml</ruleset>
          </rulesets>
      </configuration>
    </plugin>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>2.5.1</version>
        <configuration>
            <source>1.7</source>
            <target>1.7</target>
        </configuration>
    </plugin>

    </plugins>
  </pluginManagement>
</build>

<reporting>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-pmd-plugin</artifactId>
            <version>2.7.1</version>
        </plugin>
    </plugins>
</reporting>

注: 数か月前、1.7 JDK はサポートされていませんでした。ドキュメントで再確認する必要があります。そうしないと、ダイヤモンド構文を使用できません。

于 2012-08-20T07:39:25.177 に答える
1

pom.xml

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.5.1</version>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>
    </plugins>
</build>
于 2012-08-20T07:37:00.330 に答える