操作系统:Windows 7 x64
Eclipse平台:3.7.2.M20120208
m2e:1.0.200.20111228-1245
遇到与此bug类似的问题。
package-info.java
和/src
文件夹中有大量/test
个文件,因此它们具有相同的包。 Eclipse显示错误:
"The type **package-info** is already defined"
我可以删除package-info.java
或/test
中的/src
个文件,以避免出现问题。但是这种解决方法不太舒服,因为我使用SCM并且需要在更新后一直删除这些文件。
对于 Eclipse Platform 4.2.0.I20120608-1400
答案 0 :(得分:12)
你可以这样做 - >
转到构建路径 - >配置构建路径 - >
在“来源”标签中 - >
选择包(你有这些有问题的package-info.java文件) 例如。项目名/ SRC /测试/ JAVA
点击排除 - >并在排除模式中添加" ** / package-info.java"
这应该可以解决问题,因为显然你要求eclipse排除这些文件,因此你不必删除这些文件并解决你的SCM相关问题
答案 1 :(得分:4)
有几种方法可以解决这个问题:
答案 2 :(得分:2)
如果你使用maven和m2e进行eclipse和maven之间的交互。有一个非常干净的解决方案:将配置文件添加到仅由m2e激活的pom.xml,并防止在测试 - 编译阶段编译package-info.java。这是一个样本:
<profile>
<id>m2e</id><!--This profile is activated when eclipse interacts with maven (using m2e).-->
<activation>
<property>
<name>m2e.version</name>
</property>
</activation>
<build>
<plugins>
<plugin>
<!--eclipse do not support duplicated package-info.java, in both src and test.-->
<artifactId>maven-compiler-plugin</artifactId>
<executions>
<execution>
<id>default-testCompile</id>
<phase>test-compile</phase>
<configuration>
<testExcludes>
<exclude>**/package-info.java</exclude>
</testExcludes>
</configuration>
<goals>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>