maven-shade-plugin : schließen Sie eine Abhängigkeit und alle transitiven Abhängigkeiten
Mit maven-shade-plugin
gibt es eine Möglichkeit, um auszuschließen, eine Abhängigkeit (die nicht "vorgesehen") und alle transitiven Abhängigkeiten?
Beispiel :
<dependencies>
<dependency>
<groupId>com.example</groupId>
<artifactId>some-artifact</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
... other dependencies
</dependencies>
und 1)
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.3</version>
<configuration>
<artifactSet>
<includes>
<include>*:*</include>
</includes>
<excludes>
<exclude>com.example:some-artifact</exclude>
</excludes>
</artifactSet>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
oder 2)
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.3</version>
<configuration>
<artifactSet>
<includes>
<include>*:*</include>
</includes>
</artifactSet>
<filters>
<filter>
<artifact>com.example:some-artifact</artifact>
<excludes>
<exclude>**</exclude>
</excludes>
</filter>
</filters>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
Diejenigen, die nicht arbeiten. Alle transitiven Abhängigkeiten von com.example:some-artifact
Hinzugefügt werden, um das Letzte Glas. Beachten Sie, dass ich nicht wollen, um den Umfang der com.example:some-artifact
zu "versehen".
Du musst angemeldet sein, um einen Kommentar abzugeben.
Run "Schatten" in einem Profil, und markieren Sie Ihre Abhängigkeit, da nur in diesem Profil. Zum Beispiel:
Beim ausführen
mvn -PshadeProfile package
es zu behandeln, wird Ihre Abhängigkeit von den vorgesehenen (und damit auslassen, Ihre Abhängigkeiten), und es wird die Nutzung der classifier "beschattet", so dass Sie können verwenden Sie diese als Abhängigkeit in anderen Modulen.Ich habe versucht, folgende Konfiguration, und es funktionierte für mich auch: