maven打包的时候将依赖的jar包也打进去

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xb12369/article/details/79966633

最近在改造底层一个utils项目的时候,再将lib工程转maven项目后,打包丢了相关依赖;


之前lib工程的时候是需要借助第三方fatjar的,现在转maven后相关依赖全部丢失;


基于当前工程已经被很多项目引用,这里谋求一个新的出路,希望用maven插件也能将相关依赖打包进去!


现在有两种办法:

首先需要一个启动类,类在启动的时候把相关的依赖都初始化进去




方法一:使用插件maven-shade-plugin

<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>
							<transformers>
								<transformer
									implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
									<mainClass>util.Microseer</mainClass>
								</transformer>
							</transformers>
						</configuration>
					</execution>
				</executions>
			</plugin>

这样打出来的包ToolHelper-0.0.1-SNAPSHOT.jar和original-ToolHelper-0.0.1-SNAPSHOT.jar

original-是原始包就是不含第三方jar的,另一个是含第三方jar的



方法二:使用插件maven-assembly-plugin

<!-- Maven Assembly Plugin -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-assembly-plugin</artifactId>
				<version>2.4.1</version>
				<configuration>
					<!-- get all project dependencies -->
					<descriptorRefs>
						<descriptorRef>jar-with-dependencies</descriptorRef>
					</descriptorRefs>
					<!-- MainClass in mainfest make a executable jar -->
					<archive>
						<manifest>
							<mainClass>util.Microseer</mainClass>
						</manifest>
					</archive>

				</configuration>
				<executions>
					<execution>
						<id>make-assembly</id>
						<!-- bind to the packaging phase -->
						<phase>package</phase>
						<goals>
							<goal>single</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

这样打出来的包:ToolHelper-0.0.1-SNAPSHOT-jar-with-dependencies.jar和ToolHelper-0.0.1-SNAPSHOT.jar

jar-with-dependencies是包含第三方的jar,另一个是不含的!


最终效果:


阅读更多

没有更多推荐了,返回首页