主要是为了迎合公司微服务项目,同时是对已有技术的实践整理。java
spring-boot-maven-plugin
构建构建jar包;maven-surefire-plugin
跳过测试类;maven-antrun-plugin
插件实现jar包的拷贝;springboot:1.5.6.RELEASE springcloud:Edgware.SR3 eclipse:eclipse-jee-2018-09-win32-x86_64
jdk、maven环境
web
sp-cloud |-database //数据库对应版本脚本 |-v1.0 |-create_v1.0.sql |-upgrade_v1.0.sql |-sp_common //公共jar包、公共工具包 |-pom.xml |-discovery //服务发现 |-pom.xml |-config //配置中心 |-pom.xml |-gateway //分发网关 |-pom.xml |-gateway-api //rest api接入网关 |-pom.xml |-components //具体的业务服务 |-service-a |-pom.xml |-service-b |-pom.xml |-service-c |-pom.xml ... |-pom.xml //parent pom |-README.md //包含服务规划说明、安装部署等
<build> <plugins> <plugin> <!-- 跳过测试 全局生效--> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <skip>true</skip> </configuration> </plugin> </plugins> <pluginManagement> <plugins> <plugin> <!-- springboot maven构建插件 --> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </pluginManagement> </build>
须要注意的是:使用spring-boot-maven-plugin
构建时须要有main启动类,若是是以jar包的形式引用到组件项目中,使用原生的maven构建插件便可。spring
<build> <finalName>${project.artifactId}</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> </plugin> </plugins> </build>
<build> <finalName>${project.artifactId}</finalName> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <addResources>true</addResources> </configuration> </plugin> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>${java.version}</source> <target>${java.version}</target> <encoding>${project.build.sourceEncoding}</encoding> </configuration> </plugin> <plugin> <artifactId>maven-resources-plugin</artifactId> <executions> <execution> <phase>compile</phase> </execution> </executions> <configuration> <encoding>${project.build.sourceEncoding}</encoding> </configuration> </plugin> <plugin> <artifactId>maven-antrun-plugin</artifactId> <!-- 拷贝插件 --> <executions> <execution> <id>copy</id> <phase>install</phase> <!-- maven生命周期 --> <configuration> <tasks> <!-- 其余语法自行百度maven-antrun-plugin插件的相关用法--> <copy todir="${output.jar.directory}"> <!-- 文件将要输出目录 在parent pom中统一配置,此处引用便可--> <fileset dir="${project.build.directory}"> <!-- 待拷贝文件的目录,默认目录在项目的target下--> <include name="${project.artifactId}.jar" /> <!-- 待拷贝文件,能够使用下面的通配符,还能够是其余目录的文件。此处须要与project.bulid.finalName对应,不然可能找不到文件 --> <!-- <include name="*.jar" /> --> </fileset> </copy> </tasks> </configuration> <goals> <goal>run</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
mvn install