当前位置: 首页 > 面试题库 >

为什么Maven会产生此错误:“ ...在-source 1.5中不受支持”?

梁浩
2023-03-14
问题内容

今天早上,Maven开始抱怨此错误:

error: multi-catch statement is not supported in -source 1.5

奇怪的是,我正在使用JDK 7,并且此代码已经构建了好几周了。我只是将m2e与默认POM一起使用,而未指定编译器版本。

这是我的Maven版本信息:

Apache Maven 3.0.2 (r1056850; 2011-01-08 19:58:10-0500)
Java version: 1.7.0_03, vendor: Oracle Corporation
Java home: C:\SDKs\Java\jdk1.7.0_03\jre
Default locale: en_US, platform encoding: Cp1252
OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows"

我可以这样使用Maven编译器插件解决它:

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.4</version>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>

仍然,我想了解为什么Maven突然开始行为异常并需要使用编译器插件。


问题答案:

这很可能是环境问题,而不是Maven问题(即,您的JAVA_HOME环境变量已更改)。值得注意的是,仍然需要编译器插件。通过在pom中包含此编译器部分,可以确保无论使用何种环境设置,都可以使用正确的编译器来编译代码。



 类似资料:
  • 因此,我尝试在单个查询中,仅在行不存在的情况下插入行。 我的疑问如下: 有时(非常罕见,但仍然如此),它会生成以下错误: 违反主键约束“主键用户角色”。无法在对象“dbo”中插入重复键。用户的角色。重复的键值为(29851,1)。 是。下面是表的架构的完整SQL: 背景: 这是由托管在Apache服务器上的PHP脚本执行的,在数百次事件中,“随机”发生一次(很可能与并发相关)。 更多信息: 提供:

  • 问题内容: 下面的代码在执行时会产生堆栈溢出错误。但是,如果删除其中一个 它运行时没有堆栈溢出错误。如果我有以上两行,而类中只有其中一行,则没有错误,怎么会出现堆栈溢出错误呢? 问题答案: 两者都需要生成一个。当包含此行时: 首次访问该类时,将创建的实例。 不包括此行: 一切都很好。但是这条线很关键。每次创建的实例时,它都会尝试初始化其成员变量-另一个对象。然后, 该 实例将 其 初始化为另一个对

  • 我有一个现有的Maven项目,该项目具有正确的pom.xml文件。我可以通过命令行构建项目。但是,当我将项目作为eclipse中现有的Maven项目导入时,我在eclipse中得到错误。 此外,项目的某些属性在导入后没有得到正确的反映,例如。它是一个web项目,但我没有在项目结构下看到。我仍然可以在project图标上看到小的表示它是一个maven项目。 我尝试用更新项目,并用刷新项目。还是同样的

  • 问题内容: 我正在尝试使用DB2运行一个简单的SQL语句,并且遇到了一些问题。我想在txt / db2文件中有一个脚本,并让引擎处理所有命令 这是脚本: 当我运行db2 -f / pathtofile时,我得到: 我究竟做错了什么?我的脚本有问题吗?另外,为什么没有“;”也能正常工作 我的陈述结尾处的终止符? 谢谢, 问题答案: 可能会有帮助, http://www.uc.edu/R/r25/do

  • 问题内容: 我想知道为什么在引用“ w”之后会引发错误。您不是通过说obj = w来创建另一个指向该w实例的指针吗?也就是说,为什么与说谢谢一样呢? 问题答案: 没有什么比早上引用JLS更重要。 JLS 6.3。宣言的范围: 块中的局部变量声明的范围(第14.4节)是该声明在其中出现的其余部分,从其自身的初始化程序开始,并在局部变量声明语句的右侧包括其他任何声明符。 和 JLS 14.2 方块:

  • 问题内容: 我这里哪里错了? 上面的代码抛出一个。 问题答案: Python没有变量声明,因此它必须弄清楚变量本身的范围。它是通过一个简单的规则来做到这一点的:如果在函数内部对变量进行了赋值,则该变量被视为局部变量。[1] 因此, 隐式地使本地化不过,尝试执行此行将尝试在分配本地变量之前读取它的值,从而导致。[2] 如果是全局变量,则关键字将有所帮助。如果是局部函数和局部变量,则可以在Python