Ant/ErrorProne のバックアップ差分(No.1)
- バックアップ一覧
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- バックアップ を表示
- Ant/ErrorProne へ行く。
- 追加された行はこの色です。
- 削除された行はこの色です。
--- title: AntでError Proneを使用する author: aterai pubdate: 2018-10-27T20:57:37+09:00 description: AntでのJavaコードのコンパイラにコード解析を行うErrprProneを適用する方法など。 --- #contents * 概要 [#summary] `Ant`での`Java`コードコンパイルに`Error Prone`を使用して、ソースコード解析を強化します。 * サンプルターゲット [#target] - 以下`build.xml`に記述するターゲットサンプル - `xmlns:unless="ant:unless"`をルート要素に追加する必要がある - `<javaversion>`コンディションを使用しているので、`ant`は`1.10.2`以降を使用する必要がある -- [https://archive.apache.org/dist/ant/RELEASE-NOTES-1.10.2.html Release Notes of Apache Ant 1.10.2] -- `sdkman`で`ant`をインストールすると、`2018-10-27`現在の最新は`1.10.1`なので注意 #code{{ <?xml version="1.0" encoding="UTF-8"?> <project name="example" default="compile" xmlns:unless="ant:unless"> ... <path id="project.class.path"> <pathelement location="${build.dest}" /> <pathelement location="${java.home}/lib/javaws.jar" /> <pathelement path="${java.class.path}" /> </path> <target name="errorprone" depends="prepare-src, prepare-resource, prepare-web"> <!-- using github.com/google/error-prone-javac is required when running on JDK 8 --> <property name="javac.jar" location="${env.ERRORPRONE_HOME}/javac-9+181-r4173-1.jar"/> <condition property="jdk9orlater"> <javaversion atleast="9"/> </condition> <path id="processorpath.ref"> <fileset dir="${env.ERRORPRONE_HOME}" includes="*.jar" /> </path> <javac srcdir="${build.src}" excludes="**/module-info.java" includes="**/*.java" destdir="${build.dest}" encoding="${compile.encoding}" debug="${compile.debug}" optimize="${compile.optimize}" deprecation="${compile.deprecation}" fork="yes" includeAntRuntime="no" classpathref="project.class.path"> <compilerarg value="-J-Xbootclasspath/p:${javac.jar}" unless:set="jdk9orlater"/> <compilerarg line="-XDcompilePolicy=simple"/> <compilerarg value="-processorpath"/> <compilerarg pathref="processorpath.ref"/> <compilerarg value="-Xplugin:ErrorProne -Xep:DeadException:ERROR -Xep:CatchAndPrintStackTrace:OFF" /> </javac> </target> }} * 解説 [#explanation] + [https://errorprone.info/docs/installation#ant Installation]に記述されている`error_prone_core-2.3.2-with-dependencies.jar`、`jFormatString-3.0.0.jar`、`javac-9+181-r4173-1.jar`をダウンロードし、適当な(例えば環境変数`ERRORPRONE_HOME`を設定した)場所に配置する + 上記のような`errorprone`ターゲットを`build.xml`に追加する、または`complie`ターゲットの`<javac>`を置き換えてコンパイルする ---- - 例えば`MultipleTopLevelClasses`をチェックしないように設定する場合は、以下のように`-Xep:MultipleTopLevelClasses:OFF`を引数に追加する -- `<compilerarg value="-Xplugin:ErrorProne -Xep:DeadException:ERROR -Xep:MultipleTopLevelClasses:OFF -Xep:CatchAndPrintStackTrace:OFF" />` -- [http://errorprone.info/docs/flags Command-line flags] * 参考リンク [#reference] - [https://errorprone.info/ Error Prone] - [https://github.com/google/error-prone google/error-prone: Catch common Java mistakes as compile-time errors] * コメント [#comment] #comment #comment