如何在execmaven插件中手动指定java路径
在maven项目中,我试图在生成测试资源之前执行一个特定的类文件 我不想使用我的JAVA_HOME变量,因此我使用以下插件进行编译:如何在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中正确
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