3 Stimmen

Warum fügt das maven-assembly-plugin die gleiche Abhängigkeit mehrfach in mein Zip ein?

Ich habe eine Montagebeschreibung zusammengestellt

<assembly>
<id>all</id>
<formats>
    <format>zip</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<moduleSets>
    <moduleSet>
        <includes>
            <include>org.openscada.atlantis:org.openscada.atlantis.core.common</include>
            <include>org.openscada.atlantis:org.openscada.atlantis.net.base</include>
            <include>org.openscada.atlantis:org.openscada.atlantis.core.net.base</include>
            ... some more ...
            <include>org.openscada.atlantis:org.openscada.atlantis.spring.components</include>
        </includes>
        <binaries>
            <includeDependencies>true</includeDependencies>
            <outputDirectory>bin</outputDirectory>
            <unpack>false</unpack>
            <dependencySets>
                <dependencySet>
                    <outputDirectory>lib</outputDirectory>
                    <useTransitiveFiltering>true</useTransitiveFiltering>
                </dependencySet>
            </dependencySets>
        </binaries>
    </moduleSet>
</moduleSets>
</assembly>

nichts Besonderes, aber jetzt sind meine Abhängigkeiten mehrfach in der Zip-Datei enthalten (genau die gleichen Dateien). Warum passiert das, und wie kann ich das verhindern? (Ich dachte, dass die Verwendung von useTransitiveFiltering dies vielleicht verhindern würde, aber nein)

Zur Veranschaulichung, wie es in der Zip-Datei aussieht, hier eine Illustration:

Bildschirmfoto Zip-Datei http://www.openscada.org/AtlantisMavenBuild?action=AttachFile&do=get&target=multiple-deps.png

7voto

Chris Dail Punkte 24971

Das ist ein Fehler im Assembly Plugin. Ich habe das auch vor etwa einem Jahr bemerkt. In der neuesten Version des Assembly-Plugins ist das Problem nicht mehr vorhanden. Ich würde empfehlen, die Version des Assembly-Plugins, die Sie verwenden, auf 2.2 Beta 3 zu aktualisieren. Damit sollte Ihr Problem behoben sein.

  <plugin>
      <artifactId>maven-assembly-plugin</artifactId>
      <groupId>org.apache.maven.plugins</groupId>
      <version>2.2-beta-3</version>
  </plugin>

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X