Maven говорит мне «Фатальная ошибка компиляции: неверный целевой релиз», хотя версия Java верна - PullRequest
0 голосов
/ 17 февраля 2019

Либо я чертовски туп и пропускаю что-то очень очевидное, либо мой Rasberry Pi делает очень странные вещи.Я просто пытаюсь скомпилировать простой Java-проект, и Maven постоянно говорит мне Fatal error compiling: invalid target release: 9.0, хотя у меня установлена ​​Java 9: ​​

pi@Harald:~ $ mvn -v
Apache Maven 3.3.9
Maven home: /usr/share/maven
Java version: 9-Raspbian, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-9-openjdk-armhf
Default locale: de_DE, platform encoding: UTF-8
OS name: "linux", version: "4.14.79-v7+", arch: "arm", family: "unix"

Я также проверил пути для java и javac, но, похоже, обаисправить также:

pi@Harald:~ $ java -version
openjdk version "9-Raspbian"
OpenJDK Runtime Environment (build 9-Raspbian+0-9b181-4bpo9rpt1)
OpenJDK Server VM (build 9-Raspbian+0-9b181-4bpo9rpt1, mixed mode)
pi@Harald:~ $ javac -version
javac 9-Raspbian

Чего мне не хватает?

См. полный журнал ошибок

1 Ответ

0 голосов
/ 17 февраля 2019
  1. Убедитесь, что для JAVA_HOME установлено значение JDK 9.
  2. Укажите maven-compiler-plugin свойства источника / цели / выпуска:
<properties>
    <maven.compiler.source>1.9</maven.compiler.source>
    <maven.compiler.target>1.9</maven.compiler.target>
    <maven.compiler.release>9</maven.compiler.release>
</properties>
Настроить maven-compiler-plugin и maven-toolchains-plugin:
<build>
    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.7.0</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>3.0.2</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-toolchains-plugin</artifactId>
                <version>1.1</version>
            </plugin>
        </plugins>
    </pluginManagement>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-toolchains-plugin</artifactId>
            <configuration>
                <toolchains>
                    <jdk>
                        <version>1.9</version>
                        <vendor>oracle</vendor>
                    </jdk>
                </toolchains>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>toolchain</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

Примечания:

  • Чтобы настроить цепочку инструментов, создайте ~/.m2/toolchains.xml идобавьте следующее:
<toolchains>
    <toolchain>
        <type>jdk</type>
        <provides>
            <version>1.9</version>
            <vendor>oracle</vendor>
        </provides>
        <configuration>
            <jdkHome>/path/to/your/jdk-9</jdkHome>
        </configuration>
    </toolchain>
</toolchains>
  • Для экспериментов без обновления pom.xml: Первая символическая ссылка / bin / javac9 на / opt / jdk-9 / bin / javac и / opt / jdk-9до версии JDK 9, которую вы сейчас используете.Затем попробуйте эту команду:
mvn -Dmaven.compiler.fork -Dmaven.compiler.executable=javac9 install
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...