maven 插件实现自动化编译

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.mobile263</groupId>
	<artifactId>fastjson</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>fastjson</name>

	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.0.1.RELEASE</version>
		<relativePath /> <!-- lookup parent from repository -->
	</parent>
	<properties>
		<kyo.out>f:/ideaOut/fastjson</kyo.out>
		<project.out>released</project.out>
		<project.out.name>fastjson</project.out.name>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<java.version>1.8</java.version>
		<project.build.timestamp>${timestamp}</project.build.timestamp>
	</properties>

	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter</artifactId>
			<exclusions>
				<exclusion>
					<groupId>org.springframework.boot</groupId>
					<artifactId>spring-boot-starter-logging</artifactId>
				</exclusion>
			</exclusions>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
			<exclusions>
				<exclusion>
					<groupId>org.springframework</groupId>
					<artifactId>spring-core</artifactId>
				</exclusion>
			</exclusions>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-devtools</artifactId>
			<optional>true</optional>
			<scope>true</scope>
		</dependency>

		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>fastjson</artifactId>
			<version>1.2.47</version>
		</dependency>

		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<version>1.16.20</version>
			<!--<scope>provided</scope> -->
		</dependency>
	</dependencies>
	<build>
		<plugins>

			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>buildnumber-maven-plugin</artifactId>
				<version>1.4</version>
				<configuration>
					<timestampFormat>yyyyMMdd_HHmmss</timestampFormat>
				</configuration>
				<executions>
					<execution>
						<goals>
							<goal>create-timestamp</goal>
						</goals>
					</execution>
				</executions>
				<inherited>false</inherited>
			</plugin>

			<!-- 项目依赖插件 -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-dependency-plugin</artifactId>
				<version>3.0.1</version>
				<executions>
					<execution>
						<id>copy-dependencies</id>
						<phase>package</phase>
						<goals>
							<goal>copy-dependencies</goal>
						</goals>
						<configuration>
							<!-- 拷贝项目依赖包到lib/目录下 -->
							<outputDirectory>${kyo.out}/lib</outputDirectory>
							<excludeTransitive>false</excludeTransitive> <!-- 表示是否不包含间接依赖的包 -->
							<stripVersion>false</stripVersion> <!-- 去除版本信息 -->

							<overWriteReleases>true</overWriteReleases>
							<overWriteSnapshots>true</overWriteSnapshots>
							<overWriteIfNewer>false</overWriteIfNewer>
						</configuration>
					</execution>
				</executions>
			</plugin>
			<!-- 打包插件 -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jar-plugin</artifactId>
				<version>3.0.2</version>
				<configuration>
					<archive>
						<!-- 生成MANIFEST.MF的设置 -->
						<manifest>
							<!-- 为依赖包添加路径, 这些路径会写在MANIFEST文件的Class-Path下 -->
							<addClasspath>true</addClasspath>
							<classpathPrefix>lib/</classpathPrefix>
							<!-- jar启动入口类 -->
							<mainClass>com.mobile263.App</mainClass>
						</manifest>
						<manifestEntries>
							<!-- 在Class-Path下添加配置文件的路径 -->
							<Class-Path>config/</Class-Path>
						</manifestEntries>
					</archive>
					<includes>
						<!-- 打jar包时,只打包class文件 -->
						<include>**/*.class</include>
					</includes>

					<!--打包项目主要的jar到制定目录 -->
					<outputDirectory>${kyo.out}/</outputDirectory>
				</configuration>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-resources-plugin</artifactId>
				<version>3.0.2</version>
				<executions>

					<execution>
						<id>copy-config</id>
						<phase>package</phase>
						<goals>
							<goal>copy-resources</goal>
						</goals>
						<configuration>
							<encoding>UTF-8</encoding>
							<!-- &lt;!&ndash; 拷贝项目config下,除脚本以外的所有文件到config/目录下 &ndash;&gt; -->
							<outputDirectory>${kyo.out}/config</outputDirectory>
							<resources>
								<resource>
									<directory>src/main/resources</directory>
									<filtering>true</filtering>
									<includes>
										<!-- &lt;!&ndash;<include>*.properties</include>&ndash;&gt; -->
										<include>application.properties</include>
									</includes>
								</resource>
							</resources>
						</configuration>
					</execution>

					<!-- 脚本 -->
					<execution>
						<id>copy-scripts</id>
						<phase>package</phase>
						<goals>
							<goal>copy-resources</goal>
						</goals>
						<configuration>
							<encoding>UTF-8</encoding>
							<!-- 只拷贝项目script目录下的脚本文件到输出目录下 -->
							<outputDirectory>${kyo.out}</outputDirectory>
							<resources>
								<resource>
									<directory>scripts</directory>
									<filtering>true</filtering>
									<includes>
										<!--<include>*.bat</include> -->
										<include>*.sh</include>
									</includes>
								</resource>
							</resources>
						</configuration>
					</execution>

				</executions>
			</plugin>

		</plugins>
	</build>


</project>

猜你喜欢

转载自blog.csdn.net/yingcly003/article/details/83062438