[ https://issues.apache.org/jira/browse/MJAVADOC-469?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16729162#comment-16729162 ]
Thorsten Schöning commented on MJAVADOC-469: -------------------------------------------- bq. How is Maven supposed to know that this is a path and not a mere string? One might argue that the backslash is explicitly used as an escape character in the spec at least at two places, one is the already mentioned paths, the other seem to be tag names: bq. Use of Colon in Tag Name - A colon can be used in a tag name if it is escaped with a backslash. For this doc comment: https://docs.oracle.com/javase/7/docs/technotes/tools/windows/javadoc.html#javadocoptions bq. If a filename contains embedded spaces, put the whole filename in double quotes, and double each backslash ("My Files\\Stuff.java"). https://docs.oracle.com/javase/7/docs/technotes/tools/windows/javadoc.html#argumentfiles If the backslash is an escape character, it can not be used by itself only in the options files and that is the only thing one needs to take care about in this context. So shouldn't it be somewhat safe to simply define that if a backslash is not followed by another one or a colon, it needs to be doubled? `\\` is a valid escape sequence and `\:` is as well, all others are not. The only problem is that it's not clearly documented this way in the spec from my understanding, but again one could argue that an optionally wrong `\\` in some arbitrary text not breaking things might be less of a problem than a not escaped `\` in a path breaking things or needing ugly workarounds like mine. > javadoc-plugin does not double backslashes in argument file > ----------------------------------------------------------- > > Key: MJAVADOC-469 > URL: https://issues.apache.org/jira/browse/MJAVADOC-469 > Project: Maven Javadoc Plugin > Issue Type: Bug > Components: javadoc > Affects Versions: 2.10.4 > Reporter: Ilya Basin > Assignee: Michael Osipov > Priority: Major > > On Windows `generate-rest-docs` goal of `maven-jira-plugin` calls > `maven-javadoc-plugin` with: > {code}additionalparam: -output > "C:\path\to\target\classes\resourcedoc.xml"{code} > If this argument was passed to `javadoc.exe` directly, I'm pretty sure this > would work. However, the javadoc plugin generates an argument file[1] named > "options" and executes: > {code}javadoc.exe ... @options{code} > The file contains all arguments with unescaped backslashes, although javadoc > command documentation[2] suggests: > {quote}If a filename contains embedded spaces, put the whole filename in > double quotes, and double each backslash ("My Files\\Stuff.java"){quote} > javadoc plugin version "2.4" is hardcoded in jira plugin, but I see no > related changes in "2.10.4" in AbstractJavadocMojo.addCommandLineOptions() . > [1]: https://maven.apache.org/plugins/maven-javadoc-plugin/ > [2]: > http://docs.oracle.com/javase/7/docs/technotes/tools/windows/javadoc.html#argumentfiles -- This message was sent by Atlassian JIRA (v7.6.3#76005)