我偶爾會在用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安裝或構建文件有關。
不幸的是,對我的公司實行嚴格的專有信息保護政策,我有點擔心在這裏分享任何實際的代碼或實際的螞蟻文件,但我希望有人會有一個想法,他們可以與我分享。