Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Maven: compiling and testing on different source levels

I am currently working on a project which will run on an embedded device. The device runs a Java ME JRE (comparable to Java 1.4).

Because of this maven is configured to compile for source & target level 1.4.

Is it possible to run the maven test phase on a different source/target level? Because this way I could use Mockito for unit-testing.

like image 529
Michael Avatar asked May 15 '12 15:05

Michael


1 Answers

The source and target versions can be set separately for the compile and testCompile goals of the maven compiler plugin. You can change the settings either by defining properties in your pom:

<properties>
    <maven.compiler.source>1.4</maven.compiler.source>
    <maven.compiler.target>1.4</maven.compiler.target>
    <maven.compiler.testSource>1.5</maven.compiler.testSource>
    <maven.compiler.testTarget>1.5</maven.compiler.testTarget>
</properties>

Or by explicit configuration of the compiler plugin:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.4</version>
    <configuration>
        <source>1.4</source>
        <target>1.4</target>
        <testSource>1.5</testSource>
        <testTarget>1.5</testTarget>
    </configuration>
</plugin>
like image 120
Jörn Horstmann Avatar answered Oct 14 '22 06:10

Jörn Horstmann