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