これまでのところ、ビルド プロセスが完全に 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 値または enum 変数のみが許可されます
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; 2012-01-17 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 OS 名: "linux"、バージョン: "3.2.0-40-generic"、arch : "amd64"、ファミリー: "unix"
アップデート:
標準の JDK コンパイラは、特定のクラスを正常にコンパイルします。plexus-compiler-eclipse 2.2 の問題のようです。