Hello Cristiano, The problem (as I see it) is that your code below is trying to resolve an artifact from the repository using the same artifact information as specified in your dependency section. Therefore, if your project declares a dependency of type "jar" (or does not specify type, which falls back to "jar" by default), then after resolving it from repo all you are going to get is an exactly identical artifact descriptor. What you actually need is to get hold of either the Model or the MavenProject instance for the dependency artifact.
You can try the following (disclaimer: I haven't tested it myself): @Component private ArtifactFactory artifactFactory; @Component private MavenProjectBuilder mavenProjectBuilder; ... for (Artifact artifact : artifacts) { getLog().debug("Resolving dependency artifact " + artifact); Artifact projectArtifact = artifactFactory.createProjectArtifact( artifact.getGroupId(), artifact.getArtifactId(), artifact.getVersion() ); MavenProject project = mavenProjectBuilder.buildFromRepository( projectArtifact, remoteRepositories, localRepository, true ); String type = project.getPackaging(); // this is the packaging type as declared at the top of the project POM } I hope the above works for you. Kind regards, -- Sergei Ivanov Tue, 13 May 2014 14:07:06 -0300 от Cristiano Gavião <cvgav...@gmail.com>: >Trying the dev list, since I got no answer in the user one... :( > >---------- Forwarded message ---------- >From: Cristiano Gavião < cvgav...@gmail.com > >Date: 2014-05-07 12:35 GMT-03:00 >Subject: How to resolve and get the right packaging type? >To: Maven Users List < us...@maven.apache.org > > > >Hello, > >I'm using maven-bundle-plugin in a project. it generates a jar but its packaging type is "bundle". > >Maven doesn't complains when I declare a bundle dependency without the type property (that defaults to "jar"). > >In the plugin that I'm developing I need to create some files based on that packaging type. >I tried to resolve each direct dependency and tried to get its packaging type (the one fixed in its pom), but it is not working, because I always get the "jar" value. > >>>for (Artifact artifact : artifacts) { >>> >>> getLog().debug("Resolving dependency artifact " + artifact); >>> ArtifactResolutionRequest request = new ArtifactResolutionRequest() >>> .setArtifact(artifact) >>> .setRemoteRepositories(remoteRepositories) >>> .setLocalRepository(localArtifactRepository); >>> >>> ArtifactResolutionResult resolutionResult = repositorySystem >>> .resolve(request); >>> if (resolutionResult.hasExceptions()) { >>> throw new MojoExecutionException("Could not resolve artifact: " >>> + artifact, resolutionResult.getExceptions().get(0)); >>> } >>> artifact = (Artifact) resolutionResult.getArtifacts().iterator() >>> .next(); >>> >>> String type = artifact.getType(); >>I need to know the declared artifact packaging type. How could I achieve this? >> >>thanks for any tip. >> >>Cristiano