[forge-issues] [JBoss JIRA] (FORGE-432) forge source-plugin cannot resolve dependency with property version

Lincoln Baxter III (JIRA) jira-events at lists.jboss.org
Tue Jan 17 11:48:18 EST 2012


    [ https://issues.jboss.org/browse/FORGE-432?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12659897#comment-12659897 ] 

Lincoln Baxter III commented on FORGE-432:
------------------------------------------

Which dependency cannot be resolved?
                
> forge source-plugin cannot resolve dependency with property version
> -------------------------------------------------------------------
>
>                 Key: FORGE-432
>                 URL: https://issues.jboss.org/browse/FORGE-432
>             Project: Forge
>          Issue Type: Bug
>    Affects Versions: 1.0.0.Beta5
>         Environment: Windows 7, Desktop PC 
>            Reporter: Max Schwaab
>            Priority: Minor
>              Labels: maven
>         Attachments: pom.xml
>
>
> Hey there,
> here is the new issue to my problem. I copied the description from FORGE-430 and updated it a bit.
> Task:
> Install a plugin from a local project with dependencies to some library not provided or known by Forge
> Command:
> forge source-plugin
> The way to the failure:
> ForgePlugin.installFromLocalProject invokes
> ForgePlugin.installFromCurrentProject invokes
> ForgePlugin.createModule invokes
> ForgePlugin.createDependenciesModule invokes
> ForgePlugin.resolveArtifacts invokes
> MavenDependencyFacet.getDependencies which finally invokes
> {code}
> MavenCoreFacet maven = project.getFacet(MavenCoreFacet.class);
> Model pom = maven.getPOM();
> {code}
> The problem is, that ForgePlugin.resolveArtifacts compares the dependencies and sets the original dependency d to d2, which comes from the MavenCoreFacet with no resolved version (but the {some.version} property as version).
> So maybe the problem is in the ForgePlugin.resolveArtifacts method.
> I pointed to the (possible) problem in the code snipped below.
> d comes with correct resolved version and d2 comes with the content of the version property (e.g. {some.version}) as "version".
> The comparison is successfull, but afterwards the new "version" can't be resolved (because its something like {some.version})
> {code}
> private List<DependencyResource> resolveArtifacts(final Project project, final Dependency dep) {
>       Dependency d = dep;
>       List<DependencyResource> artifacts = new ArrayList<DependencyResource>();
>       DependencyFacet deps = project.getFacet(DependencyFacet.class);
>       for (Dependency d2 : deps.getDependencies()) {
>          if (DependencyBuilder.areEquivalent(d, d2) && (d2.getVersion() != null))
>          {
>             d = d2; //<- this results in a "Could not resolve dependency" message
>             break;
>          }
>       }
>       if (artifacts.size() != 1)
>       {
>          artifacts = resolver.resolveArtifacts(d, deps.getRepositories());
>       }
>       if (artifacts.size() != 1)
>       {
>          ShellMessages.warn(writer, "Could not resolve dependency [" + d.toCoordinates() + "]");
>       }
>       return artifacts;
> }
> {code}
> *Important*
> This issue doesn't seem to have influence on the functionality of the plugin, maybe because I shaded the dependencies to Forge.
> Hope you can reproduce this issue, otherwise I can give you a pom snipped with my dependencies.
> Best regards
> Max

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the forge-issues mailing list