【Java Spring Cloud 实战之路】- 2 创建项目
0. 前言
该项目使用Maven进行管理和构建,所以需要预先配置好Maven。嗯,在这个系列里就不做过多的介绍了。
1. 创建项目
先创建一个pom.xml 文件,添加以下内容:
<?xml version="1.0" encoding="UTF-8"?>
<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>club.attachie</groupId>
<artifactId>nature</artifactId>
<packaging>pom</packaging>
<version>${revision}</version>
<properties>
<revision>1.0-SNAPSHOT</revision>
</properties>
</project>
POM 全称 project object model,也就是项目对象模型,它是maven项目的标注文件,采用XML格式,名称就是pom.xml。这个文件用于管理源代码、配置文件、开发者的信息和角色、问题追踪系统、组织信息、项目授权、项目地址和依赖关系。
pom文件对于maven项目重要到,一个maven项目可以没有其他的任何文件和内容,但绝对不能没有pom.xml文件。
1.1 项目信息
pom文件中包含了项目的基本信息:
groupId 组织名称
artifactId 项目名称
version 版本号
1.2 使用占位符
在pom中我们会使用很多项目的版本号,有时候还会使用一些其他的常量。如果常量分布的比较零散,这样就不利于我们的维护和管理。这时候就要引入占位符或者叫属性。我们将需要的常量声明在properties节点内:
<properties>
<revision>1.0-SNAPSHOT</revision>
</properties>
这种形式类似于 声明了一个变量
revision=1.0-SNAPSHOT
在需要这个变量的时候,通过
${revision}使用即可。
2. 项目结构分层
在一个工业级的项目里,我们需要对项目进行一个合理的分层。这样有利于开发和后期维护。
那么,先在根目录下添加这三个目录:
common 用来存放一些公共包
activities 业务模块所在的父包
manager 用来存放一些Spring Cloud的一些管理工具,例如Spring boot admin、Spring Cloud Gateway等
分别在三个目录下添加 pom.xml文件,添加:
<?xml version="1.0" encoding="UTF-8"?>
<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>club.attachie</groupId>
<artifactId>各自的项目名称,建议是目录名</artifactId>
<packaging>pom</packaging>
<version>${revision}</version>
<parent>
<groupId>club.attachie</groupId>
<artifactId>nature</artifactId>
<version>${revision}</version>
</parent>
</project>
并修改各自的artifactId。
然后注册到根目录的pom.xml,标记这三个项目为子项目。
<modules>
<module>common</module>
<module>activities</module>
<module>manager</module>
</modules>
然后运行:
mvn clean install
检查一下配置是否有误。
3. 引入公共依赖
Spring boot和Spring Cloud建立了对应的依赖包,可以让我们在开发过程中不用过多的担心一些常见项目与Spring boot和Spring Cloud的版本冲突问题。
先在根目录下的pom.xml文件中声明引入的 Spring boot版本号和Spring Cloud版本号:
<spring-boot.version>2.2.5.RELEASE</spring-boot.version>
<spring-cloud.version>Hoxton.SR3</spring-cloud.version>
创建依赖管理节点,并添加 Spring boot 和Spring Cloud依赖包:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
在子包中需要用到的三方包,理应都由根目录下的pom.xml进行管理,而管理的包都会放在dependencyManagement >> dependencies 节点下。
在项目中使用依赖,在pom.xml文件的project节点下添加如下节点,如果已有可以忽略,注意不是dependencyManagement下的。
<dependencies>
</dependencies>
试着添加lombok包(这个包是一个Java中很著名的包,可以省略Java中的get/set等方法的创建)。
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
之所以没有声明版本号,是因为这个包已经由 spring-boot-dependencies 进行管理了。所以我们直接在这里引入即可。
4. 总结
现在,我们搭建起了一个项目架子,里面空荡荡的什么都没有,但这样就形成了一个骨架,后期将为这个骨架丰富血肉,让它的功能更加强大。
- Java Spring Cloud 实战之路 - 1 创建项目
- 【Java Spring Cloud 实战之路】- 使用Nacos和网关中心的创建
- java实战项目j2se.j2ee,ssh,ssm,springboot,springcloud
- 39套Java架构师springboot,springcloud,dubbo,rocketmq,redis,tomcat大型分布式电商项目实战
- 【Java Spring Cloud 实战之路】添加一个SpringBootAdmin监控
- 微服务架构JAVA,SpringCloud,日志分析,工作流,高并发解决方案,tomcat负载均衡,大型电商项目实战
- 视频教程-7周Spring Cloud微服务架构项目实战-Java
- java架构师、集群、高可扩展、高性能、高并发、性能优化、Spring boot、Dubbo、Redis、ActiveMQ、Nginx、Mycat、Netty、Jvm大型分布式项目实战学习架构师之路
- 2019最新千锋Java高级教程 Java微服务架构(Spring Boot + Spring Cloud)项目实战
- Java Spring Cloud微服务项目实战(完整)
- 通过springboot+mybatis+mysql+freemarker创建一个java web项目
- SpringBoot 实战 (一) :如何创建SpringBoot项目 --入门篇
- 传统Java Web(非Spring Boot)、非Java语言项目接入Spring Cloud方案
- (八)Java B2B2C多用户商城 springcloud架构- commonservice-eureka 项目构建过程
- java SpringBoot 三种项目创建方式
- 视频教程-新版SpringBoot微服务项目架构实战-Java
- 用Intelij idea 创建 Spring Boot项目一创建Module openfirein-cloud-config-servier(1-2)
- JAVA项目实战练习-----小白进阶之路
- springboot springcloud 父项目pom工程创建pom文件
- 创建java的SpringBoot项目操作BTC、LTC【json-rpc】