Eclipse javadoc: тип package-info уже определен
ОС: Windows 7 x64
Платформа Eclipse: 3.7.2.M20120208
m2e: 1.0.200.20111228-1245
У вас есть аналогичная проблема, как в этом bug.
В папках /src
и /test
есть куча файлов package-info.java
, поэтому они имеют один и тот же пакет. Ошибка Eclipse:
"The type **package-info** is already defined"
Я могу удалить файлы package-info.java
либо в /test
, либо /src
, чтобы избежать указания проблемы. Но это обходное решение не очень удобно, так как я использую SCM и вам нужно удалять эти файлы все время после обновления.
То же самое для Eclipse Platform 4.2.0.I20120608-1400
Ответы
Ответ 1
Есть несколько вариантов решения этой проблемы:
- Удалите файлы package-info.java и замените их на файлы package.html.
- В файле src/tree есть только файлы package-info.java, так как пакеты с одинаковым именем в тесте/дереве будут "перекрываться" с src/tree.
- Создайте javadoc отдельно для src/и test/trees, так как они, вероятно, для разных аудиторий.
Ответ 2
Вы можете сделать это →
Перейти к пути сборки → настроить путь сборки →
на вкладке Источник →
выберите пакет (в котором у вас есть этот проблемный файл package-info.java)
например. имя-проекта/SRC/тест/Java
нажмите на exclude → и в шаблоне исключения добавьте "**/package-info.java"
это должно решить проблему, так как вы просто просите eclipse исключить эти файлы и, следовательно, вам не нужно будет удалять эти файлы и решать ваши проблемы, связанные с SCM.
Ответ 3
Если вы используете 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>