[ https://issues.apache.org/jira/browse/MNG-6130?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16531736#comment-16531736 ]
Michael Osipov commented on MNG-6130: ------------------------------------- [~boris_brodski], thank you for looking into this.I do really appreciate. Please join IRC on freenode, #maven. [~rfscholte], any idea how we can proceed here? The requester is unable to strip down his issue. I don't want to reject hard work just because the IT is too complex to build. > Loss of profile information in workaround for MNG-4900 > ------------------------------------------------------ > > Key: MNG-6130 > URL: https://issues.apache.org/jira/browse/MNG-6130 > Project: Maven > Issue Type: Bug > Components: core > Affects Versions: 3.3.9, 3.5.0 > Environment: Windows > Reporter: Boris Brodski > Priority: Major > Labels: easyfix, patch > Fix For: waiting-for-feedback > > Attachments: MNG-6130.patch > > > Please, forgive me not providing example project reproducing the bug. > It's very tricky and hopefully not necessary, since the 1-line fix is > provided. > Using profiles together with maven-javadoc-plugin results in the following > problem: > - Configuration from active profiles is not considered during dependency > resolution started problematically from the maven-javadoc-plugin. > This leads to unpredictable behavior, that is somewhat hard to reproduce. > Here is the technical inside and the 1-line fix: > In the DefaultMavenProjectBuilder.toRequest(): > {noformat} > if ( profileManager != null ) { > ... > } else { > ... > /* > * MNG-4900: Hack to workaround deficiency of legacy API which makes it > impossible for plugins to access the > * global profile manager which is required to build a POM like a CLI > invocation does. Failure to consider > * the activated profiles can cause repo declarations to be lost which in > turn will result in artifact > * resolution failures, in particular when using the enhanced local repo > which guards access to local files > * based on the configured remote repos. > */ > request.setActiveProfileIds( req.getActiveProfiles() ); > request.setInactiveProfileIds( req.getInactiveProfiles() ); > } > {noformat} > Here we copy active and inactive profile ids, but we don't copy the list of > all profile ids. Missing line: > {noformat} > request.setProfiles( req.getProfiles() ); > {noformat} > As the result the method DefaultProfileManager.getActiveProfiles() always > returns an empty list: > {noformat} > List<Profile> activeProfiles = new ArrayList<>( profiles.size() ); > for ( Profile profile : profiles ) { > ... > } > return activeProfiles; > {noformat} > "profiles" here is empty, since it wasn't copied together with > "getActiveProfiles()" and "getInactiveProfiles()" > Adding the missing line fixes the problem. -- This message was sent by Atlassian JIRA (v7.6.3#76005)