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

Jakob Korherr updated MJAVADOC-320:
-----------------------------------

    Attachment: MJAVADOC-320-integration-test.patch

integration test showing issues.

> includeDependencySources does not handle external dependencies and filters 
> for reactor dependencies correctly
> -------------------------------------------------------------------------------------------------------------
>
>                 Key: MJAVADOC-320
>                 URL: https://jira.codehaus.org/browse/MJAVADOC-320
>             Project: Maven 2.x Javadoc Plugin
>          Issue Type: Bug
>    Affects Versions: 2.8
>            Reporter: Jakob Korherr
>         Attachments: MJAVADOC-320-integration-test.patch
>
>
> Setting includeDependencySources=true should include the -sources artifacts 
> of the dependencies of the current project, filtered via 
> dependencySourceIncludes and/or dependencySourceExcludes, in the javadoc 
> generation. However, there are some major issues with the current 
> implementation:
> 1) filters are ignored for reactor dependencies: Scenario: you have an 
> aggregator project consisting of 3 modules, the 3rd module has a dependency 
> to the first and second one, it has includeDependencySources set to true and 
> explicitly excluded the 2nd module from the javadoc sources via 
> dependencySourceExcludes. If you build the aggregator project, the 2nd module 
> will be included nevertheless (filter does not work), but if you build module 
> 3 only, it works as expected.
> 2) external dependencies are not added to the javadoc generation: if you have 
> a project which has a dependency which is not part of the current project 
> (e.g. the servlet-api in MyFaces) and you explicitly include it for javadoc 
> generation via dependencySourceIncludes, it won't be included. The problem 
> here is the dependency resolution with a filter: The ArtifactResolver uses 
> the filter to check the whole dependency trail of an artifact (and not just 
> the artifact itself), thus the current project must also be included by the 
> filter or no dependencies of it will be resolved by the ArtifactResolver. 
> However, the current project is not a dependency of the current project, it 
> is the same and thus not explicitly included by dependencySourceIncludes. 
> This means the filter must be modified for dependency resolution to always 
> include the current project artifact.
> 3) includeTransitiveDependencySources does not work as expected: The name of 
> this property implies that not only the current project's dependencies, but 
> also all transitive dependencies are added for javadoc generation. However, 
> currently this property is only passed on to the 
> PatternIncludesArtifactFilter and/or the PatternExcludesArtifactFilter, which 
> is wrong and actually breaks the include/exclude mechanism if it is set to 
> false (unfortunately the default value).
> I will attach an integration test showing the issues described and a patch 
> solving this issue.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to