Eclipse javadoc:类型package-info已经定义

时间:2012-06-28 13:55:08

标签: eclipse javadoc m2eclipse

操作系统: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

也是如此

3 个答案:

答案 0 :(得分:12)

你可以这样做 - >

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

在“来源”标签中 - >

选择包(你有这些有问题的package-info.java文件) 例如。项目名/ SRC /测试/ JAVA

点击排除 - >并在排除模式中添加" ** / package-info.java"

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

答案 1 :(得分:4)

有几种方法可以解决这个问题:

  1. 远离package-info.java文件,并将其替换为package.html文件。
  2. 只有src / tree中的package-info.java文件,因为test / tree中同名的包将与src / tree“重叠”。
  3. 分别为src /和test / trees生成javadoc,因为它们可能针对不同的受众。

答案 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>