プロジェクトを ant から maven に変換したところ、ソース ファイルが正しい順序でコンパイルされていないように動作する jar のビルド中にエラーが発生しました。次のような列挙型があります。
public enum LmsError implements ILmsError {
UC0001() {
@Override
public String msg() {
return this.getClass().getName() + "-" + this + ": constructor failed: ";
}
},
インターフェイスは次のようになります。
public interface ILmsError {
public abstract String msg();
}
...そして、これはそれを使用するコードの例です。'throws' 行は、以下のエラー メッセージが訴えている行ですが、ステートメントをコメント アウトすると、次に msg() メソッドが参照されたときに同様のエラーが発生します。列挙型のどの要素が使用されているかは問題ではありません。
} catch (Exception e) {
throw new RuntimeException(LmsError.UC0001.msg() + "Unable to construct status based on " + codeEnumeration + ":" + e.getMessage(), e);
}
mvn クリーン コンパイル
[compiler:compile]
Compiling 129 source files to C:\bsaastad\workspaces\theportaltree\redirect\redirect-ejb\target\classes
-------------------------------------------------------------
COMPILATION ERROR :
-------------------------------------------------------------
com/theportaltree/redirect/status/RedirectStatus.java:[156,58] cannot find symbol
symbol : method msg()
location: class com.theportaltree.lms.LmsError
1 error
クリーンなしで再度コンパイルすると、次のような結果が得られます (すべてのファイルを処理するには、さらに 2 回のコンパイルが必要になる場合があります)。
[compiler:compile]
Compiling 89 source files to C:\bsaastad\workspaces\theportaltree\redirect\redirect-ejb\target\classes
[resources:testResources]
クリーンなコンパイル。
失敗後に出力ディレクトリを見ると、生成された列挙型クラスが存在しないことがわかります。これがエラーを説明しています。コンパイルが成功するとすぐに、列挙型クラスが期待どおりに存在します。
これはすべて同じプロジェクトにあるため、依存関係の問題ではないと思います。これをantビルドからmaven(maven newbie)に変換したところ、数年間問題なくコンパイルされました。pom.xml のプラグイン セクションを次に示します。何か足りないものはありますか?何かの間違ったバージョン?私は困惑しています:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<!-- put your configurations here -->
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-ejb-plugin</artifactId>
<version>2.3</version>
<configuration>
<ejbVersion>3.1</ejbVersion>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.8.1</version>
<configuration>
<!-- javadoc configuration options here -->
</configuration>
</plugin>
</plugins>
</build>
どんな助け/アイデアも大歓迎です。