如何在execmaven插件中手动指定java路径

如何在execmaven插件中手动指定java路径,java,maven,Java,Maven,在maven项目中,我试图在生成测试资源之前执行一个特定的类文件 我不想使用我的JAVA_HOME变量,因此我使用以下插件进行编译: org.apache.maven.plugins maven编译器插件 3.1 真的 真的 ${JAVA_1_8_HOME}/bin/javac 1.3 以及以下用于运行测试的插件: org.apache.maven.plugins maven surefire插件 2.13 ${JAVA_1_8_HOME}/bin/JAVA 所有测试都在Java8中正确

在maven项目中,我试图在生成测试资源之前执行一个特定的类文件

我不想使用我的JAVA_HOME变量,因此我使用以下插件进行编译:


org.apache.maven.plugins
maven编译器插件
3.1
真的
真的
${JAVA_1_8_HOME}/bin/javac
1.3
以及以下用于运行测试的插件:


org.apache.maven.plugins
maven surefire插件
2.13
${JAVA_1_8_HOME}/bin/JAVA
所有测试都在Java8中正确运行。 然后,我尝试指定一个类文件,以便在使用exec maven plugin进行测试之前运行:


org.codehaus.mojo
execmaven插件
1.3
构建测试环境
生成测试资源
JAVA
专家
test.server.server
问题是我遇到了以下错误:

java.lang.UnsupportedClassVersionError: test/server/Server : Unsupported major.minor version 52.0
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
        at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:281)
        at java.lang.Thread.run(Thread.java:722) 
有没有办法手动指定exec maven插件使用的java版本或java路径?

目标在同一个VM中运行:

在当前VM中执行提供的java类,并将封闭项目的依赖项作为类路径

因此,它将使用与Maven相同的
JAVA\u HOME

如果要显式指定可执行文件,则需要使用在单独进程中运行的目标。然后,您可以将参数配置为所需的可执行文件:


org.codehaus.mojo
execmaven插件
1.3
构建测试环境
生成测试资源
执行官
${JAVA_1_8_HOME}/bin/JAVA
-类路径
test.server.server