This time, I will introduce how to specify the " -parameters
"compile option added in JDK 8 with 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
For Maven, just add the " -parameters
"option to the configuration of the Apache Maven Compiler Plugin (https://maven.apache.org/plugins/maven-compiler-plugin/index.html).
pom.xml
<!-- ... -->
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<compilerArgs>
<arg>-parameters</arg> <!--← Added! !!-->
</compilerArgs>
</configuration>
</plugin>
</plugins>
</build>
<!-- ... -->
IntelliJ IDEA
For IntelliJ IDEA, simply select "Preferences> Build, Execution, Deployment> Compiler> Java Compiler" and specify "-parameters" for "Additional command line parameters:" on the screen that appears. Be sure to ** rebuild ("Build> Rebuild") ** after changing the compile options! !!
Spring Tool Suite(Eclipse)
For Spring Tool Suite (Eclipse), just select "Preferences> Java> Compiler" and check "Store information about method parameters (usable via reflection)" on the screen that appears. Just in case, after changing the compile options, be sure to ** rebuild ("Project> Clean ...") **! !!
Spring and MyBatis (3.4.1+), which I often use at work, also support the -parameters
option, which saves me the trouble of specifying argument names (or redundant specifications) in annotations. In the case of Spring, the mechanism to resolve the argument name from the debug information (information output when the -g
option is specified) is provided independently, but it is more efficient at runtime to use the -parameters
option. You can resolve the argument name.
Although not mentioned this time, Kotlin, one of the JVM languages, also supports Java's -parameters
equivalent compile options from 1.1. For that, I will introduce how to use (setting method) in "Kotlin 1.1 and MyBatis 3.4.1 can eliminate @Param !!". If you are interested, please refer to that as well!
Recommended Posts