当前位置: 首页 > 知识库问答 >
问题:

Maven不能用1.7 JDK编译Java7

巫马劲
2023-03-14

我一定是个反Maven的人,因为每次我尝试使用它时,我都会花很多时间挣扎,然后就放弃了。我的最新情况是,我不能编译Java7源代码,尽管有1.7的JDK。

以下是MVN compile的输出。有趣的是,当我使用Maven 3.0.4时,错误消息是-source 1.5而不是使用Maven 3.2.1的-source 1.6

[ERROR] .../src/main/java/pox/common/ServiceResponse.java:[300,43] diamond operator is not supported in -source 1.6
[ERROR] (use -source 7 or higher to enable diamond operator)
[ERROR] .../src/main/java/pox/common/ServiceRequest.java:[185,43] diamond operator is not supported in -source 1.6
[ERROR] (use -source 7 or higher to enable diamond operator)

正如您所看到的,我使用的是Maven的最新版本,Maven使用的是Java1.7。

$ mvn -v
Apache Maven 3.2.1 (ea8b2b07643dbb1b84b6d16e1f08391b666bc1e9; 2014-02-14T12:37:52-05:00)
Maven home: /usr/local/maven
Java version: 1.7.0_40, vendor: Oracle Corporation
Java home: /usr/local/jdk1.7.0_40-x64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "2.6.18-371.4.1.el5", arch: "amd64", family: "unix"

我认为MVN脚本正在添加/jre,因为我的环境变量没有指定它。

$ echo -e "$JAVA_HOME\n$M2_HOME"
/usr/local/java7-x64
/usr/local/maven

$ which javac
/usr/local/java7-x64/bin/javac

我正在编写一些我想Springify的POJO,所以我决定使用Maven,并在Spring站点上找到了Maven的入门。

共有1个答案

宓季同
2023-03-14

我有一个类似的问题,我有一个用maven和eclipse的项目,但是编译时有问题,因为maven的默认级别源代码是Java1.5,当然我的代码是Java1.6的,所以我必须添加maven的编译器插件来设置源代码的正确版本,下面是我的配置,所以我想你应该只把1.6改成1.7

<build>
    <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.1</version>
          <configuration>
            <source>1.6</source>
            <target>1.6</target>
          </configuration>
        </plugin>
    </plugins>
</build>
 类似资料:
  • 我有一个Java FX项目,正在使用maven 3.0.5进行构建。当我运行mvn package/install时,项目失败并抱怨包javafx.*不存在。据我所知,Javafx是用Java1.7封装的,所以构建过程中不采用这一点是没有意义的。当我在IDE(intellij)中编译它时,它工作得很好,然后我的maven构建也成功安装了,但是我不希望每次进行干净的安装时都要经历IDE。有什么想法吗

  • 我的项目无法使用以下库进行编译: 我的分级代码: 错误: **错误:任务“:app:PredexDebug”执行失败。 com.android.ide.common.Process.processException:org.gradle.Process.internal.execException:进程“command”/usr/lib/jvm/java-7-openjdk-amd64/bin/j

  • 问题内容: 我在eclipse中创建了一个Maven项目,当我尝试在项目目录mvn clean install中运行时,出现以下错误: 我检查了软件包javax.ejb是否已下载,并且它存在于.m2文件夹中。 编辑:我的pom文件是: 问题答案: 根据你真正需要的,你必须定义依赖未在定义。 您必须提供例如:

  • 我有一个(看似)简单的maven问题我无法解决。在我的POM中,我指定了一个对openrdf-sesame的依赖关系,如下所示: 我有什么遗漏吗?我在我的POM中找不到任何错误。

  • 我无法从命令行编译Maven项目。我使用的是Maven版本: Apache Maven 3.5.4 null 这是我的pom.xml(没有依赖项): 新的堆栈跟踪是:

  • 我的pom文件列表 但是,在时,我得到 当我运行时,我看到实际上我使用的是Java6 它可以在哪里定义?我有源(d)my.zshrc多次。