Jenkinsで構築されたJavaプロジェクトで名前クラッシュエラーが発生することがあります。Jenkinsビルドで時折javac名のクラッシュエラーが発生する
私はカップルの場所でそれを見てきました、そしてそれそれは次のような形式は次の両方の場所:
public class Foo {
public enum FooEnum {
VALUE1("Val1"),
VALUE2("Val2)
private FooEnum(String) { /*code*/}
}
}
とエラー出力は言う:
[javac] /path/Foo.java:6: error: name clash: FooEnum(String) and FooEnum(String) have the same erasure
[javac] private FooEnum(String)
^
注のみが存在することFooEnumという名前のメソッドがあります。そのため、型の削除などの問題はありません。この方法は、何らかの形でそれ自身と矛盾しているようです。
私はEclipseでコードを開発し、私のコードベースは同じワークスペース内の複数のEclipseプロジェクトにまたがっています。私のJenkinのパイプラインには、Eclipseプロジェクトごとに仕事があります。
各プロジェクトが終了すると、プロジェクトディレクトリ全体(ソースファイルと.classファイルを含む)がアーカイブされます。ダウンストリームのプロジェクトはアーカイブされたオブジェクトを前のビルドからコピーして、それらを依存関係として使用できるようにします。
私はEclipseから自動生成されたant build.xmlファイルを使用しています。
これらのエラーは頻繁に表示されませんが、そうしたエラーが発生すると、通常、数回のビルドに耐えてから離れます。私は、いつ発生するのか、そうでないのかを示すパターンを見つけ出すことができませんでした。
私はEclipse内でビルドするときに一度も問題がなかったので、問題は私のJenkinsセットアップやビルドファイルともっと関係があると思います。
残念ながら、私の会社は厳重な専有情報保護方針をとっていますが、実際のコードや実際のantファイルをここで共有するのは少し不安ですが、誰かが私と共有できるアイデアを持っていることを期待していました。