如何在使用 1.6 运行基本代码时使用 Java 1.7 编写 Junit
Posted
技术标签:
【中文标题】如何在使用 1.6 运行基本代码时使用 Java 1.7 编写 Junit【英文标题】:How to write Junit with Java 1.7 while running base code with 1.6 【发布时间】:2013-10-13 18:05:20 【问题描述】:我想在我的测试中使用 java 7 并在代码中使用 java 6。如何做到这一点?
【问题讨论】:
这是一个非常糟糕的主意,恕我直言。 如果您对环境有任何控制权,那么让它们都使用相同的 JDK 版本是有意义的。 我没有任何控制权。在代码上我依赖于 java 1.6,在测试中我想使用更新的语法。 Different maven compiler versions for test and main 的可能重复项 【参考方案1】:还可以在maven-compiler-plugin
的执行阶段testCompile
设置源和目标。所以尝试这样的事情
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<executions>
<execution>
<id>testCompileWithJDK7</id>
<phase>test-compile</phase>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</execution>
</executions>
</plugin>
【讨论】:
【参考方案2】:您可以将 maven-surefire-plugin 使用的 jvm 设置为指向 java 7 可执行文件。
见http://maven.apache.org/surefire/maven-surefire-plugin/test-mojo.html#jvm
【讨论】:
Maven 失败:org.apache.maven.plugins:maven-compiler-plugin:3.1:testCompile (default-testCompile) on project MyProject: Compilation failure
你应该将maven-compiler-plugin的source和target属性设置为1.6,并确保mvn是使用jdk 6启动的。看来你的源代码与jdk版本不兼容你开始了 mvn 构建。您能否更新问题并添加:jdk mvn is started with, maven-compiler-plugin config, maven-surefire-plugin config以上是关于如何在使用 1.6 运行基本代码时使用 Java 1.7 编写 Junit的主要内容,如果未能解决你的问题,请参考以下文章
Java Swing 1.6 更新 23 个使用 Applet 的 JVM 锁
Eclipse Eclipse 在 1.6 下运行,但需要 1.7
Spark 1.6:java.lang.IllegalArgumentException:spark.sql.execution.id已设置
Spark 1.6:java.lang.IllegalArgumentException:spark.sql.execution.id 已设置