我偶尔会在用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安装或构建文件有关。
不幸的是,对我的公司实行严格的专有信息保护政策,我有点担心在这里分享任何实际的代码或实际的蚂蚁文件,但我希望有人会有一个想法,他们可以与我分享。