maven dependency excludes dependent jars or specified classes

Commonly exclude jars that depend on itself, and the way to achieve jar consistency is as follows

		<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>

Exclude the specified class from using the maven-shade-plugin plug-in. Exclude several classes under elastic-job as follows. This method can better maintain the compatibility of dependent package upgrades.

<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>

Guess you like

Origin blog.csdn.net/weixin_40455124/article/details/113487011