I'm using OpenJDK 11 on Windows 10. I have a very simple POM, for a single Java file, that generates Javadocs. Here is an extract:
<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>
Strangely just running mvn clean package
causes an error:
[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
In target/apidocs
there are only three files: javadoc.bat
, options
, and packages
. The options
file is the most interesting. It explicitly says UTF-8
everywhere, as it should. But look at these lines:
-sourcepath
C:/projects/li��o 1/src/main/java
This project is in C:\projects\lição 1
. It appears that somewhere along the chain Java or Maven or the Javadoc plugin didn't correctly convert the directory name to UTF-8.
Sure enough; when I renamed the directories in Windows to remove non-ASCII characters, mvn clean package
worked just fine.
This would seem like a blatant bug; once Maven starts, everything should be UTF-8 throughout. Is it a problem with the Javadoc plugin? Anyone have an idea where this originates? Where should I file a bug ticket? Or am I doing something wrong?
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
to<properties>
block? – Ichorencoding
defaults toproject.build.sourceEncoding
. But we're talking about the interpretation of directory names. I think this is a bug. – Larkspurdocencoding
(which is the configuration that uses theproject.reporting.outputEncoding
you referred to) specifies to the output encoding. How would this have anything to do with the encoding of the directory names the plugin places in theoptions
file? Have you actually reproduced this on your machine? Have you actually seen thisoptions
file I'm talking about? Do you understand the problem? – Larkspur