My Maven Java 8项目位于包含重音符号的路径中:C:\Développements\myproject
。
当我使用maven-javadoc-plugin
(最后2.10.4版本的事件)时,当我尝试生成项目的javadoc时,我遇到此错误(来自IntelliJ IDEA 2016.2.4):
[ERROR] javadoc: warning - No source files for package com.mycompany.myproject
[ERROR] javadoc: error - No public or protected classes found to document.
这很奇怪,因为我在这个项目中记录了类。
答案 0 :(得分:2)
如果您的测试类中没有公共方法,也会发生此错误,这正是发生的原因,因为Sonar lint规则S5786表示JUnits应该具有默认的包可见性,以提高可读性。幸运的是,您可以使用-package javadoc选项来解决此问题。如果将其放在父pom中:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
<maven.compiler.version>3.8.1</maven.compiler.version>
<junit.version>5.7.0</junit.version>
</properties>
...
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven.compiler.version}</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M4</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.9.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>3.1.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<source>8</source>
<additionalOptions>-package</additionalOptions>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
</plugin>
</plugins>
</reporting>
<distributionManagement>
<site>
<id>yourid</id>
<url>file:///var/www/html/maven</url>
</site>
</distributionManagement>
然后
mvn site-deploy
将为您提供默认的Maven站点以及javadoc。包括与Java 8项目相关的所有内容。
答案 1 :(得分:0)
实际上这是来自maven-javadoc-plugin项目的引用错误:MJAVADOC-333。
因此,由于它没有修复(目前是#34;关闭&#34; ...),因此应该从项目路径中删除重音...
答案 2 :(得分:0)
这不是Maven或插件问题,而是纯粹的Windows问题。 Microsoft在cmd.exe
中拥有正确的编码集太愚蠢了。你有一些愚蠢的DOS编码。 Java javadoc
使用它来读取@options
文件并失败。
设置_JAVA_OPTIONS=-Dfile.encoding=UTF-8
,您就完成了。或者,使用Linux发行版或FreeBSD。
问题仍然存在。
答案 3 :(得分:0)
当我使用main方法创建一个包私有类时,会发生这种情况。在将课程标记为公开后,包装步骤再次起作用。
答案 4 :(得分:0)
除了特殊字符(重音符号)问题之外,此 可能与您的pom.xml有关:
我现在在Eclipse中创建的项目遇到了同样的问题。
如果您在eclipse中创建一个项目,它将直接将Java包/源放在src
文件夹中,并将以下行添加到pom.xml中:
<sourceDirectory>src</sourceDirectory>
。
如果您随后决定根据maven conventions移动Java文件,却忘记更新或删除 sourceDirectory 标记,那么最终将出现完全相同的错误:
您的项目可以正常运行,但是javadoc找不到源代码...