通常、それ自体に依存するjarを除外します。jarの一貫性を実現する方法は、次のとおりです。
<dependency>
<groupId>ru.yandex.qatools.ashot</groupId>
<artifactId>ashot</artifactId>
<version>1.5.2</version>
<exclusions>
<exclusion>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-remote-driver</artifactId>
</exclusion>
</exclusions>
</dependency>
指定されたクラスをmaven-shade-pluginプラグインの使用から除外します。次のようにelastic-jobの下でいくつかのクラスを除外します。このメソッドは、依存するパッケージアップグレードの互換性をより適切に維持できます。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.3</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<filters>
<filter>
<artifact>com.dangdang:elastic-job-lite-core</artifact>
<!-- <includes> -->
<!-- <include>junit/framework/**</include> -->
<!-- <include>org/junit/**</include> -->
<!-- </includes> -->
<excludes>
<exclude>com/dangdang/ddframe/job/lite/api/JobScheduler</exclude>
<exclude>com/dangdang/ddframe/job/lite/internal/schedule/SchedulerFacade</exclude>
<exclude>com/dangdang/ddframe/job/lite/config/LiteJobConfiguration</exclude>
<exclude>com/dangdang/ddframe/job/lite/internal/config/LiteJobConfigurationGsonFactory</exclude>
<!-- <exclude>org/junit/runners/**</exclude> -->
</excludes>
</filter>
<filter>
<artifact>com.dangdang:elastic-job-lite-lifecycle</artifact>
<!-- <includes> -->
<!-- <include>junit/framework/**</include> -->
<!-- <include>org/junit/**</include> -->
<!-- </includes> -->
<excludes>
<exclude>com/dangdang/ddframe/job/lite/lifecycle/domain/JobSettings</exclude>
<exclude>com/dangdang/ddframe/job/lite/lifecycle/internal/settings/JobSettingsAPIImpl</exclude>
<!-- <exclude>org/junit/runners/**</exclude> -->
</excludes>
</filter>
<!-- <filter> -->
<!-- <artifact>*:*</artifact> -->
<!-- <excludes> -->
<!-- <exclude>META-INF/*.SF</exclude> -->
<!-- <exclude>META-INF/*.DSA</exclude> -->
<!-- <exclude>META-INF/*.RSA</exclude> -->
<!-- </excludes> -->
<!-- </filter> -->
</filters>
</configuration>
</execution>
</executions>
</plugin>