Я являюсь mavenifying (это слово?) Проектом, процесс сборки которого до сих пор основывался исключительно на сценариях ant/shell.Сбой компиляции Maven при включении enum
Рассмотрим следующий пример Enum
public enum ResourceType {
A, B;
}
Следующая боб:
public ResourceTypeOwner {
//set get resourceType property
}
И следующий фрагмент кода:
void foo(ResourceTypeOwner rto) {
ResourceType resourceType = rto.getResourceType();
switch (resourceType) {
case A:
handleA(resourceType); break;
case B:
handleB(resourceType); break;
default:
throw new RuntimeException("Unsupported resource type");
}
}
Я получаю ошибку компиляции при сборке мавена:
Невозможно включить значение типа ResourceType. Только конвертируемые INT значения или перечисляемые переменные могут
pom.xml имеет следующую конфигурацию плагин для компиляции
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.0</version>
<configuration>
<compilerId>eclipse</compilerId>
<compilerVersion>1.6</compilerVersion>
<source>1.6</source>
<target>1.6</target>
</configuration>
<dependencies>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-compiler-eclipse</artifactId>
<version>2.2</version>
</dependency>
</dependencies>
</plugin>
...
</plugins>
И муравей (с org.eclipse.jdt.core.JDTCompilerAdapter) и затмение строить/компилировать штраф. Очевидно, что я делаю что-то неправильно (если только это не зарегистрированный maven-компилятор-плагин или сплетение плагинов-компиляторов-eclipse, что несколько маловероятно, включение перечислений не является ни плохим, ни ракетным наукой). У кого-нибудь есть идея?
Дополнительные детали окружения
$ MVN -версии Apache Maven 3.0.4 (r1232337; 2012-01-17 10: 44: 56 + 0200) Maven дом:/дом/D/Dev/инструменты /apache-maven-3.0.4 Java-версия: 1.6.0_35, поставщик: Sun Microsystems Inc. Домашняя страница Java: /opt/jdk1.6.0_35/jre Язык по умолчанию: en_US, кодировка платформы: UTF-8 Название ОС: Linux», версия: "3.2.0-40-родовой", арка: "amd64", семья: "Юникс"
UPDATE:
Стандартный компилятор JDK успешно скомпилирует определенный класс. Похож на проблему сплетения-компилятор-затмение 2.2.
Проверьте, есть ли у вас только один 'ResourceType' в вашем пути к классам (включая зависимости). Я считаю, что у вас есть еще один (обычный) класс с тем же именем. – AlexR
Я только что просмотрел весь mvn-репозиторий для классов с тем же именем. Их нет. Кроме того, это происходит на двух разных Enums (это единственные случаи, когда перечисление включено в весь проект). Наконец, переименовали enum в ResourceType123456 (с репликатором eclipse). Та же проблема. Thx, хотя. – dkateros
Вам нужно использовать компилятор eclipse? Что случилось с jdk? – radai