I have a maven project. In the pom.xml
file the following is stated:
JavaScript
x
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</build>
AFAIK this is correct, it should build against JDK 7
.
I run a Debian based Linux dist and when I do mvn clean install
it seems to always build against the javac version I have set in my os.
I’ve tried reading up on what the plugin exactly does https://maven.apache.org/plugins/maven-compiler-plugin/, but it doesn’t really state how.
An example is I have javac 8
running on my os. When I invoke mvn clean install
, the project compiles against JDK 8
and not JDK 7
as stated in the pom.xml
. Why is this?
Advertisement
Answer
By default the maven-compiler-plugin uses %JAVA_HOME%/bin/javac to compile, unless:
- you set the executable-parameter to a different location
- you use Toolchains, which seems to match your requirements, i.e a different Java Runtime for Maven compared to the JDK for the maven-compiler-plugin.