使用maven-shade-plugin打包spring项目为可执行的jar包,打包后的jar包里面包含依赖的jar包。

POM文件:

<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-shade-plugin</artifactId>
	<version>1.7</version>
	<executions>
		<execution>
		<phase>package</phase>
		<goals>
			<goal>shade</goal>
		</goals>
		<configuration>
			<finalName>record</finalName>
			<shadedArtifactAttached>true</shadedArtifactAttached>
			<shadedClassifierName>jar-with-dependencies</shadedClassifierName>
			<transformers>
				<transformer
					implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
					<mainClass>com.tech.login.LoginDialog(main 方法)</mainClass>
				</transformer>
				<transformer
					implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
					<resource>META-INF/spring.handlers</resource>
				</transformer>
				<transformer
					implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
					<resource>META-INF/spring.schemas</resource>
				</transformer>
				<transformer
					implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
					<resource>META-INF/spring.tooling</resource>
				</transformer>
			</transformers>
			<!--打包后找不到main方法,加入以下过滤器-->
			<filters>
				<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>

  

打包执行:mvn package