Maven插件打包

本文介绍了一种Maven项目打包配置方案,通过在Parent项目中设置pluginManagement,实现子项目资源文件、源码、依赖包等的自动复制及排除指定文件夹。适用于Spring Boot Web项目的快速打包。

 在项目的Parent里定义好plugin

<pluginManagement>
			<plugins>
				<plugin>
					<groupId>org.eclipse.m2e</groupId>
					<artifactId>lifecycle-mapping</artifactId>
					<version>1.0.0</version>
					<configuration>
						<lifecycleMappingMetadata>
							<pluginExecutions>
								<pluginExecution>
									<pluginExecutionFilter>
										<groupId>org.apache.maven.plugins</groupId>
										<artifactId>maven-dependency-plugin</artifactId>
										<versionRange>[2.0,)</versionRange>
										<goals>
											<goal>copy-dependencies</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<ignore />
									</action>
								</pluginExecution>
							</pluginExecutions>
						</lifecycleMappingMetadata>
					</configuration>
				</plugin>
				
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-resources-plugin</artifactId>
					<version>2.6</version>
					<executions>
						<execution>
							<id>copy-resources</id>
							<phase>package</phase>
							<goals>
								<goal>copy-resources</goal>
							</goals>
							<configuration>
								<outputDirectory>${project.build.directory}/${project.artifactId}</outputDirectory>
								<resources>
									<resource>
										<directory>${basedir}/src/main/resources</directory>
									</resource>
								</resources>
							</configuration>
						</execution>
					</executions>
				</plugin>
                <!-- 针对sprong boot web项目打包 -->
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-jar-plugin</artifactId>
					<version>2.6</version>
					<configuration>
						<excludes>
							<exclude>conf/**</exclude>
							<exclude>templates/**</exclude>
							<exclude>static/**</exclude>
						</excludes>
						<argLine>-Dfile.encoding=UTF-8</argLine>
					</configuration>
					<executions>
	                    <execution>
		                        <id>copy-current-jar</id>
		                        <phase>package</phase>
		                        <goals>
		                            <goal>jar</goal>
		                        </goals>
		                        <configuration>
		                            <classifier>${project.version}</classifier>
		                            <jarName>${project.artifactId}</jarName>
		                            <outputDirectory>${project.build.directory}/${project.artifactId}/lib</outputDirectory>
		                        </configuration>
	                    </execution>
	                </executions>
				</plugin>
				
				<plugin>
					<artifactId>maven-source-plugin</artifactId>
					<version>2.1</version>
					<executions>
						<execution>
							<phase>compile</phase>
							<goals>
								<goal>jar</goal>
							</goals>
							<configuration>
								<excludes>
									<exclude>conf/**</exclude>
									<exclude>templates/**</exclude>
									<exclude>static/**</exclude>
								</excludes>
							</configuration>
						</execution>
					</executions>
				</plugin>
               <!-- 复制依赖包 -->
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-dependency-plugin</artifactId>
					<version>2.8</version>
					<executions>
						<execution>
							<id>copy</id>
							<phase>package</phase>
							<goals>
								<goal>copy-dependencies</goal>
							</goals>
							<configuration>
							<outputDirectory>${project.build.directory}/${project.artifactId}/lib</outputDirectory>
								<includeScope>compile</includeScope>
							</configuration>
						</execution>
					</executions>
				</plugin>
			</plugins>
		</pluginManagement>

 

然后在子工程plugin这么使用就可以了:

<plugins>
			<plugin>
				<artifactId>maven-source-plugin</artifactId>
			</plugin>
			<plugin>
				<artifactId>maven-resources-plugin</artifactId>
			</plugin>
			<plugin>
				<artifactId>maven-jar-plugin</artifactId>
			</plugin>
			<plugin>
				<artifactId>maven-dependency-plugin</artifactId>
			</plugin>
		</plugins>

打包出来的文件目录如下:

如果是普通的Spring server项目:

test(项目名)

      lib

      conf

 

test(项目名)

      lib

      conf

      static

      template

转载于:https://my.oschina.net/woter/blog/1537405

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值