项目结构
注:项目构建通过: http://start.spring.io/ 快速构建web 项目,
部署介绍
本次详细介绍使用springboot + dubbo 在windows 系统中实现部署方案,并详解如何利用脚本实现一键部署方案
部署配置详细情况下面一一介绍:
首先我们可以在dubbo提供者中也就是在项目hdd-doorplate-dubbo-server的这个模块中的pom文件 利用maven的配置进行配置
<build>
<filters>
<filter>src/main/resources/application.properties</filter>
</filters>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
<include>**/*.properties</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.4</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptor>src/main/assembly/assembly.xml</descriptor>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<encoding>UTF-8</encoding>
</configuration>
<dependencies>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-compiler-javac</artifactId>
<version>1.8.1</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
<configuration>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.10</version>
<configuration>
<skip>true</skip>
<testFailureIgnore>true</testFailureIgnore>
</configuration>
</plugin>
</plugins>
</build>
然后我们新建模块assembly 这个模块,注意、这个模块需要和pom文件中的配置信息对应,名字起什么无所谓
然后在assembly.xml中进行打包输出的配置
<assembly>
<id>assembly</id>
<formats>
<format>tar.gz</format>
</formats>
<includeBaseDirectory>true</includeBaseDirectory>
<fileSets>
<fileSet>
<directory>src/main/assembly/bin</directory>
<outputDirectory>bin</outputDirectory>
<fileMode>0755</fileMode>
</fileSet>
<fileSet>
<directory>target/classes</directory>
<outputDirectory>conf</outputDirectory>
<fileMode>0644</fileMode>
<includes>
<include>*.properties</include>
</includes>
<excludes>
<exclude>log4j.properties</exclude>
</excludes>
</fileSet>
</fileSets>
<dependencySets>
<dependencySet>
<outputDirectory>lib</outputDirectory>
<scope>runtime</scope>
</dependencySet>
</dependencySets>
</assembly>
我们包含的是所有的properties的文件,除过log4j的文件,所有的jar包全部放在lib的文件,启动脚本放在bin文件中
在bin文件中编写脚本启动方式
最后所有的配置都已经完成,在springboot中内置了tomcat容器,我们在pom文件中可配置
<!-- Spring Boot Web 依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
所以我们对外提供的接口的配置信息,与上述配置信息相同,也可以进行上述的maven配置来构建我们的启动方式。
在所有的配置已经完成,来测试一下:我们先利用maven去打包
打完的包经过解压得到的文件,然后就可以在bin中找到启动start.bat文件,去启动rpc服务。
启动成功
我们在去启动我们服务消费的web类,同理启动
然后我们访问测试:
由此可以见这次打包已经成功。
需要注意事项:
1:注意pom文件和assembly.xml中文件的对应关系
2:确认对外显示的配置文件包含的和未包含的配置
3:在启动的脚本中注意配置属于自己的启动类的包名
4:本项目使用的是dubbo,注意是否开启注册中心
5:核对访问路径和端口是否正确