JDK 8で追加された「-parameters」コンパイルオプションの指定方法(Maven, IntelliJ, Spring Tool Suite=Eclipse)
今回は、JDK 8で追加された「-parameters
」コンパイルオプションを、Maven(Maven Compiler Plugin)、IntelliJ IDEA, Spring Tool Suite(=Eclipse)で指定する方法を紹介します。
動作環境
Maven
$ ./mvnw -v
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T01:41:47+09:00)
Maven home: /Users/xxx/.m2/wrapper/dists/apache-maven-3.3.9-bin/2609u9g41na2l7ogackmif6fj2/apache-maven-3.3.9
Java version: 1.8.0_121, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre
Default locale: ja_JP, platform encoding: UTF-8
OS name: "mac os x", version: "10.10.5", arch: "x86_64", family: "mac"
IntelliJ IDEA
IntelliJ IDEA 2016.3.4
Build #IU-163.12024.16, built on January 31, 2017
Licensed to XXXX XXXX
Subscription is active until September 21, 2017
JRE: 1.8.0_112-release-408-b6 x86_64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Spring Tool Suite
Spring Tool Suite
Version: 3.8.3.RELEASE
Build Id: 201612191351
Platform: Eclipse Neon.2 (4.6.2)
Maven
$ ./mvnw -v
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T01:41:47+09:00)
Maven home: /Users/xxx/.m2/wrapper/dists/apache-maven-3.3.9-bin/2609u9g41na2l7ogackmif6fj2/apache-maven-3.3.9
Java version: 1.8.0_121, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre
Default locale: ja_JP, platform encoding: UTF-8
OS name: "mac os x", version: "10.10.5", arch: "x86_64", family: "mac"
IntelliJ IDEA 2016.3.4
Build #IU-163.12024.16, built on January 31, 2017
Licensed to XXXX XXXX
Subscription is active until September 21, 2017
JRE: 1.8.0_112-release-408-b6 x86_64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Spring Tool Suite
Version: 3.8.3.RELEASE
Build Id: 201612191351
Platform: Eclipse Neon.2 (4.6.2)
Mavenの場合は、Apache Maven Compiler Pluginのコンフィギュレーションに「-parameters
」オプションを加えるだけです。
<!-- ... -->
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<compilerArgs>
<arg>-parameters</arg> <!-- ← 追加!! -->
</compilerArgs>
</configuration>
</plugin>
</plugins>
</build>
<!-- ... -->
IntelliJ IDEA
IntelliJ IDEAの場合は、「Preferences > Build, Execution, Deployment > Compiler > Java Compiler」を選択して表示される画面の「Additional command line parameters:」に「-parameters」を指定するだけです。コンパイルオプションを変更した後は必ず再ビルド(「Build > Rebuild」)してください!!
Spring Tool Suite(Eclipse)
Spring Tool Suite(Eclipse)の場合は、「Preferences > Java > Compiler」を選択して表示される画面の「Store information about method parameters (usable via reflection)」をチェックするだけです。念のためコンパイルオプションを変更した後は必ず再ビルド(「Project > Clean...」)してください!!
まとめ
私が仕事でよく使うSpringやMyBatis(3.4.1+)も-parameters
オプションをサポートしており、アノテーションで引数名を指定する手間(or 冗長な指定)を省いてくれます。Springの場合はデバッグ情報(-g
オプション指定時に出力される情報)から引数の名前を解決する仕組みを独自に提供していますが、-parameters
オプションを使う方が実行時に効率的に引数名を解決することができます。
今回は記載しませんでしたが、JVM言語の一つであるKotlinも1.1からJavaの-parameters
相当のコンパイルオプションがサポートされます。そちらについては、「Kotlin 1.1とMyBatis 3.4.1で@Paramを排除できる!!」の中で使い方(設定方法)を紹介しているので、興味がある方はそちらも参照してください!
Author And Source
この問題について(JDK 8で追加された「-parameters」コンパイルオプションの指定方法(Maven, IntelliJ, Spring Tool Suite=Eclipse)), 我々は、より多くの情報をここで見つけました https://qiita.com/kazuki43zoo/items/c0603931c9f0a655a9a4著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .