我正在Windows 10上使用OpenJDK 11。我有一个非常简单的POM文件,用于生成Java文档,只包含一个Java文件。下面是一段摘录:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.0.1</version>
<executions>
<execution>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
奇怪的是,仅运行 mvn clean package
就会导致错误:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:3.0.1:jar (default) on project foobar: MavenReportException: Error while generating Javadoc:
[ERROR] Exit code: 1 - javadoc: error - cannot read Input length = 1
[ERROR]
[ERROR] Command line was: C:\bin\jdk-11\bin\javadoc.exe @options @packages
在
target/apidocs
文件夹中只有三个文件:javadoc.bat
、options
和 packages
。其中,options
文件最有意思。它明确地在每个地方都使用了 UTF-8
,这是应该的。但请看以下几行:-sourcepath
C:/projects/li��o 1/src/main/java
此项目位于
C:\projects\lição 1
。似乎在Java、Maven或Javadoc插件的链式过程中,某个地方未正确将目录名称转换为UTF-8。确实如此;当我在Windows中重命名目录以删除非ASCII字符时,
mvn clean package
就可以正常工作了。这似乎是一个明显的错误;一旦Maven启动,整个过程都应该使用UTF-8。这是Javadoc插件的问题吗?有谁知道这是从哪里开始的?我应该在哪里提交错误报告?或者是我的操作有误?
<properties>
块中添加<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
吗? - Mikhail Kholodkovencoding
默认为project.build.sourceEncoding
。但我们正在讨论目录名称的解释。我认为这是一个错误。 - Garret Wilson