2

maven-compiler-plugin を使用すると、プロジェクトでサポートされている jdk を指定できます。

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.5</source>
                <target>1.5</target>
                <showDeprecation>true</showDeprecation>
                <showWarnings>true</showWarnings>

                <fork>true</fork>
                <!-- <executable>path-to-javac</executable> -->
                <compilerVersion>1.5</compilerVersion>
            </configuration>
        </plugin>

しかし、別のバージョンの JDK を使用すると、ビルドに失敗する可能性はありますか?

1.5 の一部ではないjavax.xml.bind.annotation.adaptersを使用するコードがいくつかありますが、このパッケージを含む JDK6 でビルドするため、ビルドは成功します。

Eclipse 内で警告が表示されますが、プロジェクトのビルド時に使用される JDK を明示的に変更せずにビルドを失敗させるとよいでしょう。

私はこれを試しました:

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-enforcer-plugin</artifactId>
    <version>1.1.1</version>
    <executions>
      <execution>
        <id>enforce-versions</id>
        <goals>
          <goal>enforce</goal>
        </goals>
        <configuration>
          <rules>
            <requireJavaVersion>
              <version>1.5</version>
            </requireJavaVersion>
          </rules>
        </configuration>
      </execution>
    </executions>
  </plugin>

しかし、それは何もしません。また、プラグイン管理を入れようとしました:

    <plugin>
      <groupId>org.eclipse.m2e</groupId>
      <artifactId>lifecycle-mapping</artifactId>
      <version>1.0.0</version>
      <configuration>
        <lifecycleMappingMetadata>
          <pluginExecutions>
            <pluginExecution>
              <pluginExecutionFilter>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-enforcer-plugin</artifactId>
                <versionRange>[1.0,)</versionRange>
                <goals>
                  <goal>enforce</goal>
                </goals>
              </pluginExecutionFilter>
              <action>
                <ignore></ignore>
              </action>
            </pluginExecution>
          </pluginExecutions>
        </lifecycleMappingMetadata>
      </configuration>
    </plugin>

効果もありません。

4

2 に答える 2

1

タグを変更すると、maven-enforcer-plugin失敗します。<version/>

バージョン範囲の指定方法については、Maven バージョン範囲仕様を参照してください。

<version>1.5</version>

意味しますversion >= 1.5

あなたは宣言するべきです

<version>[1.5]</version>

version == 1.5これは、バージョン 1.6 の JDK を使用すると、エンフォーサがビルドに失敗することを意味します。

于 2012-10-02T06:47:00.850 に答える
0

使ってみて

<properties>
    <maven.compiler.target>1.7</maven.compiler.target>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.test.skip>true</maven.test.skip>
</properties>
于 2014-09-29T15:14:39.140 に答える