You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by maciejmad <ma...@gmail.com> on 2010/01/14 21:48:58 UTC

How to get dependency artifacts for another artifact ?

Hello. 
Here is a part of simple mojo class:

public class PlatformProviderConfigurer
        extends AbstractMojo {

    /** @parameter default-value="${project}" */
    private MavenProject mavenProject;

    public void execute() throws MojoExecutionException {
       
        Set<DefaultArtifact> dependencyArtifacts =
mavenProject.getDependencyArtifacts();
        Set<DefaultArtifact> artifacts = mavenProject.getArtifacts();

        for (DefaultArtifact defaultArtifact : dependencyArtifacts) {
           //how get dependency artifacts for defaultArtifact 
        }
    }
}

In this class I can get dependency artifacts for project and all  artifacts
for project. But how I can get  a dependency artifacts for each dependency
artifacts of project (for defaultArtifact  in foreach) ?

Best regards.


-- 
View this message in context: http://old.nabble.com/How-to-get-dependency-artifacts-for-another-artifact---tp27167882p27167882.html
Sent from the Maven Developers mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


Re: How to get dependency artifacts for another artifact ?

Posted by maciejmad <ma...@gmail.com>.
Hm I have one problem.

    depProject.getDependencyArtifacts() is null 

How to resolve this project dependency ??

Best regards



-- 
View this message in context: http://old.nabble.com/How-to-get-dependency-artifacts-for-another-artifact---tp27167882p27173357.html
Sent from the Maven Developers mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


Re: How to get dependency artifacts for another artifact ?

Posted by maciejmad <ma...@gmail.com>.
Thanks a lot





Karl Heinz Marbaise-2 wrote:
> 
> Hi there,
> 
> 
>> public class PlatformProviderConfigurer
>>         extends AbstractMojo {
>> 
>>     /** @parameter default-value="${project}" */
>>     private MavenProject mavenProject;
>> 
>>     public void execute() throws MojoExecutionException {
>>        
>>         Set<DefaultArtifact> dependencyArtifacts =
>> mavenProject.getDependencyArtifacts();
> 
> 
>>         Set<DefaultArtifact> artifacts = mavenProject.getArtifacts();
> This will give you the needed information....
> 
>      	Set depArtifacts = project.getArtifacts();
> 
> for (Iterator depArtIter = depArtifacts.iterator();depArtIter.hasNext(); )
> {
>       Artifact depArt = (Artifact) depArtIter.next();
> 
>       MavenProject depProject = null;
>       try
>       {
>          depProject = projectBuilder.buildFromRepository(depArt, 
> remoteRepositories, localRepository);
>       }
>       catch (ProjectBuildingException e)
>       {
>           throw new MojoExecutionException( "Unable to build project: " 
> + depArt.getDependencyConflictId(), e );
>       }
> 
> }
> 
> 
> What you need in your Mojo:
> 
>      /**
>       * Used to build a maven projects from artifacts in the remote 
> repository.
>       *
>       * @parameter 
> expression="${component.org.apache.maven.project.MavenProjectBuilder}"
>       * @required
>       * @readonly
>       */
>      protected DefaultMavenProjectBuilder projectBuilder;
> //    * @component 
> role"org.apache.maven.project.DefaultMavenProjectBuilder"
> roleHint="default"
> 
>      /**
>       * Location of the local repository.
>       *
>       * @parameter expression="${localRepository}"
>       * @readonly
>       * @required
>       */
>      protected org.apache.maven.artifact.repository.ArtifactRepository 
> localRepository;
> 
>      /**
>       * List of Remote Repositories used by the resolver
>       *
>       * @parameter expression="${project.remoteArtifactRepositories}"
>       * @readonly
>       * @required
>       */
>      protected java.util.List remoteRepositories;
> 
> 
> With the above construct you will get all dependencies incl. the 
> transitive dependencies.
> 
> Kind regards
> Karl Heinz Marbaise
> -- 
> SoftwareEntwicklung Beratung Schulung    Tel.: +49 (0) 2405 / 415 893
> Dipl.Ing.(FH) Karl Heinz Marbaise        ICQ#: 135949029
> Hauptstrasse 177                         USt.IdNr: DE191347579
> 52146 Würselen                           http://www.soebes.de
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org
> 
> 
> 

-- 
View this message in context: http://old.nabble.com/How-to-get-dependency-artifacts-for-another-artifact---tp27167882p27168440.html
Sent from the Maven Developers mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


Re: How to get dependency artifacts for another artifact ?

Posted by Karl Heinz Marbaise <kh...@gmx.de>.
Hi there,


> public class PlatformProviderConfigurer
>         extends AbstractMojo {
> 
>     /** @parameter default-value="${project}" */
>     private MavenProject mavenProject;
> 
>     public void execute() throws MojoExecutionException {
>        
>         Set<DefaultArtifact> dependencyArtifacts =
> mavenProject.getDependencyArtifacts();


>         Set<DefaultArtifact> artifacts = mavenProject.getArtifacts();
This will give you the needed information....

     	Set depArtifacts = project.getArtifacts();

for (Iterator depArtIter = depArtifacts.iterator();depArtIter.hasNext(); ) {
      Artifact depArt = (Artifact) depArtIter.next();

      MavenProject depProject = null;
      try
      {
         depProject = projectBuilder.buildFromRepository(depArt, 
remoteRepositories, localRepository);
      }
      catch (ProjectBuildingException e)
      {
          throw new MojoExecutionException( "Unable to build project: " 
+ depArt.getDependencyConflictId(), e );
      }

}


What you need in your Mojo:

     /**
      * Used to build a maven projects from artifacts in the remote 
repository.
      *
      * @parameter 
expression="${component.org.apache.maven.project.MavenProjectBuilder}"
      * @required
      * @readonly
      */
     protected DefaultMavenProjectBuilder projectBuilder;
//    * @component 
role"org.apache.maven.project.DefaultMavenProjectBuilder" roleHint="default"

     /**
      * Location of the local repository.
      *
      * @parameter expression="${localRepository}"
      * @readonly
      * @required
      */
     protected org.apache.maven.artifact.repository.ArtifactRepository 
localRepository;

     /**
      * List of Remote Repositories used by the resolver
      *
      * @parameter expression="${project.remoteArtifactRepositories}"
      * @readonly
      * @required
      */
     protected java.util.List remoteRepositories;


With the above construct you will get all dependencies incl. the 
transitive dependencies.

Kind regards
Karl Heinz Marbaise
-- 
SoftwareEntwicklung Beratung Schulung    Tel.: +49 (0) 2405 / 415 893
Dipl.Ing.(FH) Karl Heinz Marbaise        ICQ#: 135949029
Hauptstrasse 177                         USt.IdNr: DE191347579
52146 Würselen                           http://www.soebes.de

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org