我是直接使用的git集成到idea,git的图形化工具TortoiseGit,和码云平台(https://gitee.com/)
git的优点:
1)版本库本地化,支持离线提交,相对独立不影响协同开发。每个开发者都拥有自己的版本控制库,在自己的版本库上可以任意的执行提交代码、创建分支等行为。
2)更少的“仓库污染”。git对于每个工程只会产生一个.git目录,这个工程所有的版本控制信息都在这个目录中,不会像老版本SVN那样在每个目录下都产生.svn目录。
把内容按元数据方式存储,完整克隆版本库。所有版本信息位于.git目录中,它是处于你的机器上的一个克隆版的版本库,它拥有中心版本库上所有的东西,例如标签、分支、版本记录等。
3)支持快速切换分支方便合并,比较合并性能好。在同一目录下即可切换不同的分支,方便合并,且合并文件速度比SVN快。
4)分布式版本库,无单点故障,内容完整性好。
5) 国外开源项目基本使用git
安装好git和TortoiseGit后,先在idea中集成
这样就可以从git上获取项目了(比如,码云,github都可以)
在url中引入地址就可以了;
springcloud中的configserver配置需要从远程仓库中拉取;
这是我从网上拉取的项目
三个配置文件分别是
application-user.yml
spring:
profiles:
active:
- dev
---
server:
port: 3355
spring:
profiles: dev #开发环境
application:
name: MICROSERVICE-USER-DEV
---
server:
port: 3355
spring:
profiles: test #测试环境
application:
name: MICROSERVICE-USER-TEST
application-zuul-dev.yml
server:
port: 1030
spring:
application:
name: zuul-gateway
zuul:
routes:
myUser.serviceId: user-provider #这是调用满足条件的服务名,注意要小写
myUser.path: /user/** #这是所有路径前的通配
ignored-services: "*" #用*来通配符,忽略从端口通过服务名来调用
prefix: "/services" #这是所有路径的前缀
application-zuul-test.yml
server:
port: 1030
spring:
application:
name: zuul-gateway
zuul:
routes:
myUser.serviceId: user-provider #这是调用满足条件的服务名,注意要小写
myUser.path: /user/** #这是所有路径前的通配
ignored-services: "*" #用*来通配符,忽略从端口通过服务名来调用
prefix: "/services" #这是所有路径的前缀
让后就是搭建父级模块 springcloud-parent
pom
org.springframework.boot
spring-boot-starter-parent
2.0.5.RELEASE
UTF-8
UTF-8
1.8
Finchley.SR1
org.springframework.cloud
spring-cloud-dependencies
${spring-cloud.version}
pom
import
搭建二级父模块(方便入口类的配置) support-parent 不需要做任何配置,只需要在下面建立子模块
搭建eureka模块(还没有集群)
pom
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-test
test
org.springframework.cloud
spring-cloud-starter-netflix-eureka-server
org.springframework.boot
spring-boot-maven-plugin
bootstrap.yml
spring:
application:
name: hrm-eureka
server:
port: 1010
eureka:
instance:
hostname: localhost
client:
registerWithEureka: false
fetchRegistry: false
serviceUrl:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ #单机配置
application.yml(下面的配置可以不用管,因为bootsrap.yml>application.yml)
spring:
application:
name: hrm-eureka
入口类
@SpringBootApplication
@EnableEurekaServer
public class HrmEureka1010 {
public static void main(String[] args) {
SpringApplication.run(HrmEureka1010.class, args);
}
}
搭建configserver
pom
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-test
org.springframework.cloud
spring-cloud-starter-netflix-eureka-client
org.springframework.cloud
spring-cloud-config-server
application.xml
server:
port: 1020
eureka:
client:
service-url:
defaultZone: http://localhost:1010/eureka
instance:
prefer-ip-address: true
spring:
application:
name: hrm-config-server
cloud:
config:
server:
git:
uri: 我的码云上的configserver的地址
username: 我的码云账号
password: 密码
search-paths: src/main/resources # 如果不是在根路径下面需要加搜索地址
入口类
@SpringBootApplication
@EnableEurekaClient
@EnableConfigServer
public class HrmConfigServer1020Application {
public static void main(String[] args) {
SpringApplication.run(HrmConfigServer1020Application.class, args);
}
}
搭建zuul
pom
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-test
org.springframework.cloud
spring-cloud-starter-netflix-eureka-client
org.springframework.cloud
spring-cloud-starter-netflix-zuul
org.springframework.cloud
spring-cloud-starter-config
bootsrtap.yml
spring:
profiles:
active: dev
cloud:
config:
name: application-zuul #github上面名称
profile: ${spring.profiles.active} #环境 java -jar -D xxx jar
label: master #分支
discovery: #configserver集群
enabled: true #从eureka上面找配置服务
service-id: hrm-config-server #指定服务名
#uri: http://127.0.0.1:1299 #配置服务器 单机配置
eureka: #eureka不能放到远程配置中
client:
service-url:
defaultZone: http://localhost:1010/eureka #告诉服务提供者要把服务注册到哪儿 #单机环境
instance:
prefer-ip-address: true #显示客户端真实ip
application.yml(如果不想该配置,只需要将配置放入bootstrap.yml)
spring:
application:
name: zuul-gateway
入口类
@SpringBootApplication
@EnableZuulProxy
public class HrmZuulGetway1030Application {
public static void main(String[] args) {
SpringApplication.run(HrmZuulGetway1030Application.class, args);
}
}