Maven错误:-source 1.6不支持菱形运算符

时间:2017-06-19 09:23:48

标签: java eclipse maven

关于这个主题已经开设了很多主题,但我无法用同样的方法解决问题。我在使用Maven编译时遇到错误。当我在调试模式下重建它时,我看到它再次用1.6编译,尽管Java版本在JAVA_HOME中定义为1.7并在Eclipse中安装了JRE。我已经尝试将以下内容添加到根目录和子项目目录中,但问题仍在继续。

错误消息

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project attendance-api: Compilation failure
[ERROR] /D:/repository/sakai107/attendance/api/src/java/org/sakaiproject/attendance/model/AttendanceSite.java:[49,127] diamond operator is not supported in -source 1.6
[ERROR] (use -source 7 or higher to enable diamond operator)

AttendanceSite.java:[49127]

@Getter @Setter private Set<AttendanceStatus>   attendanceStatuses  = new HashSet<>(0);

Maven调试输出

<source default-value="1.5">1.6</source>

pom.xml(root)

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <version>3.0.1</version>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>
    </plugins>
</build>

pom.xml(在项目文件夹中)

<properties>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
</properties>

2 个答案:

答案 0 :(得分:0)

JAVA_HOME变量通常仅由mvn命令用于确定JDK的位置,但这不应影响编译器设置(当然,除非您需要JDK与版本等于或高于您的编译器设置)。

您不仅可以通过属性(例如maven-compiler-plugin)配置maven.compiler.source,还可以直接在插件定义中配置<plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.6.1</version> <configuration> <source>1.7</source> <target>1.7</target> </configuration> </plugin> </plugins> (我认为这是更安全的选项)。只需将其添加到插件定义中即可。

$Extension = pathinfo(basename($_FILES['image']['name']), PATHINFO_EXTENSION);

echo $Extension;

答案 1 :(得分:0)

这也可以通过使用:

来实现
<properties>
  <maven.compiler.target>1.7</maven.compiler.target>
  <maven.compiler.source>1.7</maven.compiler.source>
</properties>