一、环境准备
- 本地java环境jdk1.8
- Maven版本3.5.2
- IDE工具idea2017
二、SpringBoot微服务搭建
1.点击File >> New >> Project,选中Spring Initializr,选择项目JDK版本,点击下一步即可。
2.设置项目的基本信息和相关配置
3.选择spring boot版本和项目的基本依赖
4.选择项目的位置
5.选择打开一个新窗口
6.项目的基本结构
以上就是单个微服务项目搭建的基本过程
三、Spring Boot 多模块项目搭建
主项目及相关配置
1.搭建一个主项目
2.删除src目录,得到以下项目结构
3.打开pom文件得到以下内容
因为主项目不需要打包,所以删除项目打包配置,并把打包方式改为pom:修改结果如下
项目公共类微服务搭建
如果微服务比较多,项目比较复杂,多个项目可能使用同一个类和共用配置,所以我们可以把一些公用的代码提取出来,放到一个微服务里面供其他微服务使用。
1.建立common模块
右键选中项目 >> New >> Module
打开Module新建窗口,新建过程和普通微服务新建过程一般无二(可以参考第二节)
因为公共微服务不需要启动和测试,所以可以删除启动类和test目录
2.修改主项目master的pom文件
3.修改微服务common的pom文件(common也不需要打包)
应用类微服务搭建
几乎所有项目都有用户模块,我们可以将用户模块单独提出来,作为一个微服务使用
1.新建用户微服务模块
2.修改主项目master的pom
3.修改微服务sysuser的pom,同时引入common
以上多模块项目就搭建完成了
四、项目使用第三方jar包(本地jar包)
在项目src下新建一个lib文件夹,把所有第三方jar放入
在pom文件中配置dependency依赖
<dependency> <groupId>fileserver-client</groupId> <artifactId>fileserver-client</artifactId> <version>1.0.0</version> <scope>system</scope> <systemPath>${basedir}/src/lib/fileserver-client.jar</systemPath> </dependency>
这样项目就可以编译成功,但项目打包的时候会报jar找不到的错误
五、项目打包配置
项目打包命令:mvn -Dmaven.test.skip –U clean package
可以整个项目一起打包,
也可以单个微服务打包,不过这里有一个地方需要注意
common打包出来的应该是不可执行的jar包,所以不要在common的pom中定义spring-boot-maven-plugin插件,因为这个SpringBoot插件会在Maven的package后进行二次打包,目的为了生成可执行jar包,如果common中定义了这个插件,会报错提示没有找到main函数。这时你就可以去打包sysuser项目了,当然打包的时候可能还是不行,这里还有一个小坑,如果还是不能进行打包的话,那么就install一下master项目,也就是总目录下的pom文件对应的install操作,这样再打包front项目基本上就没有问题了,老铁,都是经验呀,希望对你们有帮助
打包jar
在项目中设置打包类型
<packaging>jar</packaging>
修改打包插件
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <mainClass>com.ccdc.microservice.upload.UploadApplication</mainClass> <layout>ZIP</layout> </configuration> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> </plugins> <resources> <resource> <directory>src/lib</directory> <targetPath>BOOT-INF/lib/</targetPath> <includes> <include>**/*.jar</include> </includes> </resource> <resource> <directory>src/main/resources</directory> <targetPath>BOOT-INF/classes/</targetPath> </resource> </resources> </build>
打包war
1.在项目中设置打包类型
<packaging>war</packaging>
2.修改打包插件
<build> <plugins> <!--设置maven-war-plugins插件,否则外部依赖无法打进war包--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <configuration> <webResources> <resource> <directory>src/lib</directory> <targetPath>WEB-INF/lib/</targetPath> <includes> <include>**/*.jar</include> </includes> </resource> </webResources> </configuration> </plugin> </plugins> </build>
2.重写应用启动类
@SpringBootApplication public class UploadApplication extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(UploadApplication.class, args); } @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(UploadApplication.class); } }