带有重音符号的路径中出现“未找到可记录的公共或受保护类”错误

Ant*_* O. 4 javadoc intellij-idea maven-3 maven-javadoc-plugin

我的 Maven Java 8 项目位于包含重音符号的路径内:C:\\D\xc3\xa9veloppements\\myproject

\n\n

当我使用maven-javadoc-plugin(最新 2.10.4 版本的事件)时,当我尝试生成项目的 javadoc(来自 IntelliJ IDEA 2016.2.4)时,出现此错误:

\n\n
[ERROR] javadoc: warning - No source files for package com.mycompany.myproject\n[ERROR] javadoc: error - No public or protected classes found to document.\n
Run Code Online (Sandbox Code Playgroud)\n\n

这很奇怪,因为我已经在这个项目中记录了类。

\n

kar*_*arl 6

如果您的测试类中没有公共方法,也可能会发生此错误,这正是可能发生的情况,因为 Sonar lint 规则S5786表示 JUnit 应该具有默认的包可见性,以提高可读性。幸运的是,您可以使用 -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>
Run Code Online (Sandbox Code Playgroud)

然后

mvn site-deploy
Run Code Online (Sandbox Code Playgroud)

将为您提供默认的 Maven 站点以及 javadoc。包括与 Java 8 项目相关的所有内容。