22

やっています:

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
                <compilerArgument>-Werror</compilerArgument>
                <fork>true</fork>
            </configuration>
        </plugin>

しかし、喜びはありません。このブログ投稿で提案されているようなエラーを回避するためのアイデアはあり ますか?

4

7 に答える 7

30

Maven 3.3 と Java 8 を使用した 2015 年の更新。

すべての警告を有効にし、警告が発生するたびにビルドを失敗させる最小限のコンパイラ構成を次に示します。

<plugins>
    <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.3</version>
        <configuration>
            <source>1.8</source>
            <target>1.8</target>
            <showWarnings>true</showWarnings>
            <compilerArgs>
                <arg>-Xlint:all</arg>
                <arg>-Werror</arg>
            </compilerArgs>
        </configuration>
    </plugin>
</plugins>

注意点:

  • <showWarnings>true</showWarnings>必要とされている。理由は不明ですが、Maven はデフォルトでフラグを使用して警告を積極的に抑制している-nowarnため、フラグ-Xlint-Werrorフラグは無視されます。
  • showDeprecation-Xlint:allはすでに非推奨の警告を発しているため、有効にする必要はありません。
  • ドキュメントにはそうではないと書かれていますが、実験ではfork有効にする必要がないことが示されています。
于 2015-11-20T09:39:03.860 に答える
8

maven-compiler-plugin3.6.0 の新機能:failOnWarningフラグ。これは私のために働いた:

  <plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.6.0</version>
    <executions>
      <execution>
        <id>compile</id>
        <phase>process-sources</phase>
        <goals>
          <goal>compile</goal>
        </goals>
        <configuration>
          <compilerArgument>-Xlint:-processing</compilerArgument>
          <failOnWarning>true</failOnWarning>
        </configuration>
      </execution>
    </executions>
  </plugin>

lintを除外する必要があったことに注意してください。processingそうしないと、auto-matter の注釈によって不可解な「symbol not found」エラーが発生してビルドが中断されます。

于 2016-12-07T20:28:46.853 に答える
2

編集:この回答は古くなっていますが、当時受け入れられていた回答であったため、削除できません。

これはMavenのバグです。https : //issues.apache.org/jira/browse/MCOMPILER-120 Maven-compiler-pluginの2.4で修正されていますが、まだリリースされていないと思います。残念ながら、タグも機能しません。

于 2012-02-08T11:52:49.193 に答える
0

おそらくそれを試してみてください別のフォームがありますか?末尾の s に注意してください<compilerArguments>

<configuration>
    <compilerArguments>
        <Werror />
    </compilerArguments>
</configuration>
于 2012-02-08T11:50:25.360 に答える
0

コンパイラの警告のためにMavenビルドを失敗させるための実用的なソリューションを探していたときに、この投稿にたどり着きました

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.8.0</version>
    <configuration>
        <source>${java.version}</source>
        <target>${java.version}</target>
        <fork>true</fork>
        <compilerArgs>
            <arg>-verbose</arg>
            <arg>-Werror</arg> 
            <arg>-Xlint:all</arg>
        </compilerArgs>
    </configuration>
</plugin>

詳細な説明については、以下のリンクを参照してください。

警告をエラーとして扱う

于 2021-03-25T06:55:35.773 に答える
0

このコメントの回避策を maven コンパイラ プラグインの jira issue で使用すると、コンパイラの警告でビルドが失敗する可能性があり ます

これは私のために働く:

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>2.3.2</version>
        <configuration>
            <compilerId>javac</compilerId>
            <source>1.6</source>
            <target>1.6</target>
            <compilerArgument>-Werror</compilerArgument>
            <showDeprecation>true</showDeprecation>
        </configuration>

        <dependencies>
           <dependency>
                <groupId>org.codehaus.plexus</groupId>
                <artifactId>plexus-compiler-api</artifactId>
                <version>1.8.2</version>
                <exclusions>
                  <exclusion>
                    <groupId>org.codehaus.plexus</groupId>
                    <artifactId>plexus-component-api</artifactId>
                  </exclusion>
                </exclusions>
           </dependency>
           <dependency>
                <groupId>org.codehaus.plexus</groupId>
                <artifactId>plexus-compiler-manager</artifactId>
                <version>1.8.2</version>
                <exclusions>
                  <exclusion>
                    <groupId>org.codehaus.plexus</groupId>
                    <artifactId>plexus-component-api</artifactId>
                  </exclusion>
                </exclusions>
           </dependency>
           <dependency>
                <groupId>org.codehaus.plexus</groupId>
                <artifactId>plexus-compiler-javac</artifactId>
                <version>1.8.2</version>
                <scope>runtime</scope>
                <exclusions>
                  <exclusion>
                        <groupId>org.codehaus.plexus</groupId>
                        <artifactId>plexus-component-api</artifactId>
                   </exclusion>
                </exclusions>
          </dependency>
       </dependencies>
    </plugin>
于 2012-02-09T07:04:39.817 に答える