maven dependency 排除依赖jar或者指定类

常见排除依赖自身依赖的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>

猜你喜欢

转载自blog.csdn.net/weixin_40455124/article/details/113487011
今日推荐