22

操作系统:Windows 7 x64

Eclipse 平台:3.7.2.M20120208

平方米:1.0.200.20111228-1245

有与此错误类似的问题。和文件夹中有一堆package-info.java文件,所以它们有相同的包。Eclipse 显示错误:/src/test

"The type **package-info** is already defined"

我可以删除package-info.java文件/test/src避免问题指示。但是这种解决方法不是很舒服,因为我使用的是 SCM 并且需要在更新后一直删除这些文件。Eclipse 平台 4.2.0.I20120608-1400相同

4

3 回答 3

18

你可以这样做 -->

转到构建路径->配置构建路径->

在源选项卡中 -->

选择包(其中有这些有问题的 package-info.java 文件),例如。项目名称/src/test/java

单击排除 - >并在排除模式中添加“**/package-info.java”

这应该可以解决问题,因为显然您是在要求 eclipse 排除这些文件,因此您不必删除这些文件并解决与 SCM 相关的问题

于 2014-11-05T14:27:00.900 回答
9

有几个选项可以解决这个问题:

  1. 远离 package-info.java 文件,并用 package.html 文件替换它们。
  2. 在 src/ 树中只有 package-info.java 文件,因为 test/ 树中的同名包将“重叠” src/ 树。
  3. 为 src/ 和 test/ 树分别生成 javadoc,因为它们可能针对不同的受众。
于 2014-01-08T02:14:26.423 回答
2

如果你使用 maven 和 m2e 进行 eclipse 和 maven 之间的交互。有一个非常干净的解决方案:向 pom.xml 添加一个配置文件,该配置文件仅由 m2e 激活,并防止在测​​试编译阶段编译 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>
于 2016-01-30T12:05:33.183 回答