我正在使用OpenJDK 1.8编写Maven应用程序并使用TestNG运行测试.
当我从命令行运行Maven时一切正常,但是当我尝试在IntelliJ中运行测试时,make进程显示以下错误:
java: javacTask: source release 8 requires target release 1.8
Run Code Online (Sandbox Code Playgroud)
我的项目设置指向1.8 JDK和Project Language Level 8.
在Maven内部我有以下块(我猜测它还没有被调用,因为它似乎是造成问题的原因)
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
我甚至将Maven Runner JRE配置为指向1.8 JDK.
我似乎无法让IntelliJ 12.0.4正确运行测试
我错过了什么吗?
在 Python 中,常见的习惯用法是编写如下代码:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
def main():
pass
if __name__ == "__main__":
main()
Run Code Online (Sandbox Code Playgroud)
这样做是为了如果导入而不是执行 Python 脚本,则其 main 方法将不会运行。
Bash 中有类似的习惯用法吗?
我在pom.xml中具有以下条目,其中包含在配置中定义的套件文件。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<suiteXmlFiles>
<suiteXmlFile>testng.xml</suiteXmlFile>
</suiteXmlFiles>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
使用Maven在cmd中运行此代码的正确方法是什么?我可以使用下面的命令运行测试,但是当pom中已经定义了testng.xml时,在命令中再次指示testng.xml是没有意义的。
mvn clean test -DsuiteXmlFile=testng.xml
Run Code Online (Sandbox Code Playgroud)