Maven Install: "Аннотации не поддерживаются в источнике 1,3"
При запуске mvn install
в моем проекте я вижу, что он сбой из-за следующих ошибок:
C:\Repositories\blah\src\test\java\com\xxx\qm\testrunner\test\ATest.java:[11,5] annotations are not supported in -source 1.3
(use -source 5 or higher to enable annotations)
@Test
C:\Repositories\blah\src\test\java\com\xxx\qm\common\test\BTest.java:[11,5] annotations are not supported in -source 1.3
(use -source 5 or higher to enable annotations)
@Test
Моя зависимость Maven включает jUnit 4.8
, однако и не имеет ссылки на 1.3 ничего.
Что может вызвать эти ошибки? Пожалуйста, сообщите
Ответы
Ответ 1
Вам нужно указать исходную версию вашего проекта maven с помощью maven-compiler-plugin. Добавьте в свой элемент сборки pom следующее: установите соответствующий исходный и целевой уровни java.
<build>
<defaultGoal>install</defaultGoal>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
http://maven.apache.org/plugins/maven-compiler-plugin/
Ответ 2
Более короткая версия:
<project>
<properties>
<maven.compiler.source>1.5</maven.compiler.source>
<maven.compiler.target>1.5</maven.compiler.target>
</properties>
....
Ответ 3
Скорее всего, вы используете OpenJDK, где исходный уровень равен 1.3, если он явно не задан - в отличие от Oracle JDK, где исходный уровень равен 1.5.
Поскольку большинство современных Java-проектов нацелены на более новый код, чем на Java 5, вам, скорее всего, все равно нужно установить его.
Также обратите внимание, что если вам нужна более низкая цель, чем источник (например, для компиляции с Java 6, но развертывание на Java 5), вы можете сделать это, используя компилятор Eclipse вместо Javac.
Ответ 4
По умолчанию, maven пытается скомпилировать версию Java 1.3. Я надеюсь, что большинство из них попали в эту ошибку из-за отсутствия, чтобы сказать maven, что "Эй, Maven, Dont используйте 1.3 и используйте" whatever_version_I_give "
Это можно упомянуть в pom.xml, как показано ниже:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5.1</version>
<inherited>true</inherited>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
В моем примере выше я использовал 1.7. Пожалуйста, замените любую версию, которую хотите.
Ответ 5
Добавьте это в свой pom
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.0</version>
<configuration>
<!-- put your configurations here -->
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>