[ 
https://issues.apache.org/jira/browse/MJAVADOC-450?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sebastian Marsching updated MJAVADOC-450:
-----------------------------------------
     Flags: Patch
    Labels: patch  (was: )

I attached a patch that fixes the problem for me.

The patch uses a slightly different approach than outlined in the issue 
description. Changing AbstractJavadocMojo.createAndResolveArtifact and 
JavadocPathArtifact seemed to have too much side effects. With my very limited 
knowledge of the code I cannot guarantee that this would not break anything.

The patch only modifies AbstractJavadocMojo.getResource and uses the 
straight-forward way of using the dependency information to resolve a 
dependency artifact. For fixing the resource loading from dependencies, this 
patch is sufficient.

I still think that createAndResolveArtifact's behavior of always resolving to 
the pom.xml is not correct. At least in some places, it is used in a way that 
does not seem compatible with this behavior. However, my knowledge of the whole 
plugin code is too limited to understand what the desired outcome would be in 
these cases (resolving to the referenced project source directory or resolving 
to the "default" artifact of the referenced project).

I think that my patch is so simple that it is not protected under any copyright 
laws, but for practical purposes, I hereby declare that I release it to the 
public domain.

> Artifacts with a classifier are ignored when looking for resources in 
> dependencies
> ----------------------------------------------------------------------------------
>
>                 Key: MJAVADOC-450
>                 URL: https://issues.apache.org/jira/browse/MJAVADOC-450
>             Project: Maven Javadoc Plugin
>          Issue Type: Bug
>    Affects Versions: 2.10.3
>         Environment: Apache Maven 3.3.9 
> (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T17:41:47+01:00)
> Java version: 1.8.0_66, vendor: Oracle Corporation
> OS name: "mac os x", version: "10.11.4", arch: "x86_64", family: "mac"
>            Reporter: Sebastian Marsching
>              Labels: patch
>         Attachments: MJAVADOC-450.patch
>
>
> When adding a an artifact with a classifier to the dependencies of the 
> maven-javadoc-plugin, this artifact is not used when trying to resolve 
> dependencies.
> The symptom is that a message like
> [WARNING] Unable to find the resource 'path/to/resource'. Using default 
> Javadoc resources.
> is displayed, even though the resource "path/to/resource" is present in a JAR 
> listed in the plugin dependencies.
> The reason for this seems to be that the code resolving the artifact does not 
> consider the specified classifier: The class JavadocPathArtifact does not 
> have a field for the classifier and consequently, the classifier is not set 
> when building the JavadocPathArtifact in AbstractJavadocMojo.getResource 
> (AbstractJavadocMojo.java:5307).
> The solution is adding a classifier field to JavadocPathArtifact and using 
> this classifier in AbstractJavadocMojo.createAndResolveArtifact. However, I 
> think there is also bug in that method because it uses createProjectArtifact 
> when it should probably use createArtifactWithClassifier. 
> createProjectArtifact always refers to the POM, so in the end the pom.xml is 
> added to the classpath which never makes sense.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to