Я улучшаю (это слово?) проект, процесс сборки которого до сих пор полностью основывался на сценариях ant/shell.
Рассмотрим следующее перечисление
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");
}
}
Я получаю ошибку компиляции при сборке с помощью maven:
Не удается включить значение типа 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>
И ant (с org.eclipse.jdt.core.JDTCompilerAdapter), и eclipse строят/компилируют нормально. Я, очевидно, делаю что-то не так (если только это не ошибка плагина maven-compiler-plugin или plexus-compiler-eclipse, о которой не сообщается, что несколько маловероятно, включение перечислений не является ни плохим, ни ракетостроением). У кого-нибудь есть идея?
Дополнительные сведения о среде
$mvn -version Apache Maven 3.0.4 (r1232337; 17.01.2012 10:44:56+0200) Дом Maven: /home/d/dev/tools/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-generic», arch : "amd64", семейство: "unix"
ОБНОВИТЬ:
Стандартный компилятор JDK успешно компилирует определенный класс. Похоже на проблему plexus-compiler-eclipse 2.2.
ResourceType
в пути к классам (включая зависимости). Я полагаю, что у вас есть еще один (обычный) класс с таким же названием. - person AlexR   schedule 13.05.2013