Zkuste vyjít z tohoto:
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.util.HashSet;
import java.util.Set;

import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.io.IOUtils;
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.factory.ArtifactFactory;
import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
import org.apache.maven.artifact.resolver.ArtifactResolver;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.project.MavenProject;
import org.apache.maven.project.MavenProjectBuilder;

/**
* Goal which touches a timestamp file.
*
* @goal write
*
* @phase package
*/
public class MyMojo extends AbstractMojo {

   /**
    * @parameter expression="${localRepository}"
    * @required
    * @readonly
    */
   private ArtifactRepository        localRepository;

   /**
    * @component role="org.apache.maven.artifact.resolver.ArtifactResolver"
    * @required
    * @readonly
    */
   private ArtifactResolver        artifactResolver;

   /**
    * @parameter expression="${project.remoteArtifactRepositories}"
    * @required
    * @readonly
    */
   private java.util.List            remoteRepositories;

   /**
    * @component role="org.apache.maven.artifact.factory.ArtifactFactory"
    * @required
    * @readonly
    */
   private ArtifactFactory            artifactFactory;

   /**
    * @parameter expression="${project.version}"
    * @readonly
    */
   private String                    version;

   /**
    * @component
    * @required
    * @readonly
    */
   private ArtifactMetadataSource    artifactMetadataSource;

   /**
    * @component role="org.apache.maven.project.MavenProjectBuilder"
    * @required
    */
   private MavenProjectBuilder        mavenProjectBuilder;

   /**
    * @parameter expression="${project.groupId}"
    * @required
    */
   public String                    groupId;

   /**
    * @parameter expression=""
    */
   public String                    filePrefix;

   /**
    * @parameter expression=""
    */
   public String                    linePrefix;

   /**
    * @parameter
    * @required
    */
   public String[]                    artifactIds;

   /**
    * @parameter
    */
   public String[]                    excludeIds;

   /**
    * Location of the file.
    *
    * @parameter
    * @required
    */
   private File                    outputFile;

   /**
    * Location of the file.
    *
    * @parameter expression="true"
    * @required
    */
   private final Boolean            writeFull    = true;

   public void execute() throws MojoExecutionException {
       Set<Artifact> artifacts = new HashSet<Artifact>();

       for (String artifact : artifactIds) {
Artifact art = artifactFactory.createArtifactWithClassifier(groupId, artifact, version, "jar", null);

           artifacts.addAll(getDependencyArtifacts(art));
           artifacts.add(art);
       }

       Set<Artifact> artifactsToExclude = new HashSet<Artifact>();
       if (excludeIds != null) {
           for (String artifact : excludeIds) {
Artifact art = artifactFactory.createArtifactWithClassifier(groupId, artifact, version, "jar", null); artifacts.removeAll(getDependencyArtifacts(art));
               artifacts.remove(art);
           }
       }

outputFile.getParentFile().mkdirs();

       FileWriter w = null;
       try {
           w = new FileWriter(outputFile);
           if (filePrefix != null && !filePrefix.isEmpty()) {
               w.append(filePrefix);
               w.append("\n");
           }

           for (Artifact artifact : artifacts) {
               long size = artifact.getFile().length();

FileInputStream fd = new FileInputStream(artifact.getFile());
               ByteArrayOutputStream out = new ByteArrayOutputStream();
               IOUtils.copy(fd, out);
               fd.close();

               String sha1 = DigestUtils.shaHex(out.toByteArray());

               if (linePrefix != null && !linePrefix.isEmpty()) {
                   w.append(linePrefix);
               }
if (writeFull) { w.append(artifact.getFile().getName() + "\t" + size + "\tsha1:" + sha1 + "\n");
               } else {
                   w.append(artifact.getFile().getName() + "\n");
               }
           }
       } catch (IOException e) {
throw new MojoExecutionException("Error creating file " + outputFile, e);
       } finally {
           if (w != null) {
               try {
                   w.close();
               } catch (IOException e) {
                   // ignore
               }
           }
       }
   }

private Set<Artifact> getDependencyArtifacts(Artifact artifact) throws MojoExecutionException {

       try {
// Make sure the artifact is resolved before we do anything with it getArtifactResolver().resolve(artifact, getRemoteRepositories(), getLocalRepository());

MavenProject subProject = getMavenProjectBuilder().buildFromRepository(artifact, getRemoteRepositories(),
                   getLocalRepository());


Set<Artifact> artifacts = subProject.createArtifacts(getArtifactFactory(), null, null); ArtifactResolutionResult arr = getArtifactResolver().resolveTransitively(artifacts, artifact, getLocalRepository(), getRemoteRepositories(), getArtifactMetadataSource(), null);
           Set<Artifact> result = arr.getArtifacts();

           return result;
       } catch (Exception ex) {
throw new MojoExecutionException("Failed to get dependencies", ex);
       }
   }

   private ArtifactRepository getLocalRepository() {
       return localRepository;
   }

   private ArtifactResolver getArtifactResolver() {
       return artifactResolver;
   }

   private java.util.List getRemoteRepositories() {
       return remoteRepositories;
   }

   private ArtifactFactory getArtifactFactory() {
       return artifactFactory;
   }

   private ArtifactMetadataSource getArtifactMetadataSource() {
       return artifactMetadataSource;
   }

   private MavenProjectBuilder getMavenProjectBuilder() {
       return mavenProjectBuilder;
   }

}

Tichý Miroslav napsal(a):
Abych to upresnil, programove sem myslel s vyuzitim maven API ci API jakekoliv 
maven pluginy...predpokladam, ze mi nezbude nic jineho, nez zacit zkoumat 
zdrojaky dependency tree pluginy, protože ta to nejakym zpusobem zvlada...

Mirek ________________________________________
From: [email protected] [mailto:[email protected]] On Behalf 
Of Jakub Stonavsky
Sent: Thursday, July 30, 2009 4:14 PM
To: Java
Subject: Re: maven - jak programove ziskat zavislost artefaktu

Ahoj,

pokud ti nestaci vypis, ktery poskytuje mvn dependency:build-classpath (ten 
vypise umisteni dependencies v repository, mel by to zvladnout bundle 
(http://felix.apache.org/site/apache-felix-maven-bundle-plugin-bnd.html)).

K.
2009/7/30 Tichý Miroslav <[email protected]>

Ahoj,
v maven-war-pluginu potrebuji programove ziskat zavislosti pro každý artefakt 
(war), na kterem je aktualni projekt (tedy také war) zavisly. Netusite, jak na 
to?

Diky

Mirek Tichý




--
Petr Ferschmann

--
SoftEU s.r.o.
Lochotínská 18, 301 00 Plzeň, Česká republika
Phone: +420 371 124 300, +420 371 124 384
E-mail: [email protected]  http://www.softeu.com/

begin:vcard
fn:Petr Ferschmann
n:Ferschmann;Petr
org:SoftEU s.r.o.
adr;quoted-printable;quoted-printable;quoted-printable;quoted-printable:;;Lochot=C3=ADnsk=C3=A1 18;Plze=C5=88;Plze=C5=88sk=C3=BD;301 00;=C4=8Cesk=C3=A1 Republika
email;internet:[email protected]
tel;work:+420 377 124 340
tel;cell:+420 377 124 384
x-mozilla-html:TRUE
url:www.softeu.com
version:2.1
end:vcard

Odpovedet emailem