Maven auslieferung bauen

torax13

Erfahrenes Mitglied
Hi,

ich bin seit längerem recht zufrieden mit maven2 am werkeln. wozu ich aber bisher leider keine lösung gefunden hab ist das bereitstellen einer auslieferung für eine consolenanwendung.

per 'maven package' bekomm ich ja problemlos das jar, aber was ich mir wünschen würd, wär das alle benöitgen dependencies in ein lib verzeichniss wandern, ganz klasse wär noch wenn irgendwo der classpath mit allen abhängigkeiten rauskommen würde ;)

bei der lösungssuche bin ich auf assemblies gestoßen, damit müßte es im prinzip gehen, leider ist das recht komplex in der definition und die dokumentation schweigt an vielen stellen.

die vordefinierte assembly 'assembly-with-dependencies' klingt ja soweit ganz nett. leider kommt da ein 'mega' jar raus, in welchem die klassen aller abhängigen jars reingpackt wurden. zum einen find ich das nicht wirklich doll, zum anderen t das nicht (bekomm unverständliche fehlermeldung wenn ich das jar starten will)

kann mir jemand weiterhelfen? links/ tutorials..

vielen dank
 
Für das
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
gibt es
<goal>copy-dependencies</goal>

Damit kannst du die Dependencies in einen Ordner kopieren. Aber muss du nicht unbedingt. Es geht auch direkt im Assembly (siehe dependencySet):
XML:
<assembly>
  <id>kbuild</id>
  <formats>
    <format>zip</format>
  </formats>
<fileSets>
    <fileSet>
      <directory>${basedir}</directory>
      <outputDirectory>/</outputDirectory>
      <includes>
        <include>*.java</include>
      </includes>
    </fileSet>
</fileSets>
<files>
    <file>
      <source>${basedir}/addon.txt</source>
      <outputDirectory>/</outputDirectory>
    </file>
  </files>
  <dependencySets>
    <dependencySet>
      <useProjectArtifact>true</useProjectArtifact>
      <useTransitiveDependencies>true</useTransitiveDependencies>
      <useTransitiveFiltering>true</useTransitiveFiltering>
      <outputDirectory>/lib</outputDirectory>
      <!--includes>
        <include>log4j:log4j:*</include>
      </includes-->
    </dependencySet>
  </dependencySets>
</assembly>
 
Zuletzt bearbeitet von einem Moderator:
Danke, ich hab mich erstmal (brauchte das recht dringend) für die 1. Variante (maven-dependency-plugin) entschieden. Das tut jetzt erstmal. Bei Gelegenheit muss ich mal gucken das ich das Steuern kann. will es ja nicht bei jedem build haben...

Vielen Dank für die Antwort
 
Zurück