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 创建项目的更多相关文章

  1. 【Java Spring Cloud 实战之路】- 使用Nacos和网关中心的创建

    0. 前言 在上一节中,我们创建了一个项目架构,后续的项目都会在那个架构上做补充. 1. Nacos 1.1 简介 Nacos可以用来发现.配置和管理微服务.提供了一组简单易用的特性集,可以快速实现动 ...

  2. 【Java Spring Cloud 实战之路】添加一个SpringBootAdmin监控

    0. 前言 在之前的几章中,我们先搭建了一个项目骨架,又搭建了一个使用nacos的gateway网关项目,网关项目中并没有配置太多的东西.现在我们就接着搭建在Spring Cloud 微服务中另一个重 ...

  3. 3.开始使用Spring Cloud实战微服务

                     开始使用Spring Cloud实战微服务 3.1. Spring Cloud实战前提 3.1.1. 需要的技术储备 语言方面:可以使用Java.scala.Groo ...

  4. Spring Cloud实战 | 最终篇:Spring Cloud Gateway+Spring Security OAuth2集成统一认证授权平台下实现注销使JWT失效方案

    一. 前言 在上一篇文章介绍 youlai-mall 项目中,通过整合Spring Cloud Gateway.Spring Security OAuth2.JWT等技术实现了微服务下统一认证授权平台 ...

  5. Spring Cloud实战之初级入门(六)— 服务网关zuul

    目录 1.环境介绍 2.api网关服务 2.1 创建工程 2.3 api网关中使用token机制 2.4 测试 2.5 小结 3.一点点重要的事情 1.环境介绍 好了,不知不觉中我们已经来到了最后一篇 ...

  6. Spring Cloud实战之初级入门(四)— 利用Hystrix实现服务熔断与服务监控

    目录 1.环境介绍 2.服务监控 2.1 加入依赖 2.2 修改配置文件 2.3 修改启动文件 2.4 监控服务 2.5 小结 3. 利用hystrix实现消费服务熔断 3.1 加入服务熔断 3.2 ...

  7. spring cloud实战 1-高可用注册中心

    创建父maven项目 提交代码至GitHub 创建eureka-server-1 项目搭建两种方式: 父pom中继承spring-boot-starter-parent,子pom中直接结成父pom.该 ...

  8. [Spring Cloud实战 | 第六篇:Spring Cloud Gateway+Spring Security OAuth2+JWT实现微服务统一认证授权

    一. 前言 本篇实战案例基于 youlai-mall 项目.项目使用的是当前主流和最新版本的技术和解决方案,自己不会太多华丽的言辞去描述,只希望能勾起大家对编程的一点喜欢.所以有兴趣的朋友可以进入 g ...

  9. Spring Cloud实战 | 第九篇:Spring Cloud整合Spring Security OAuth2认证服务器统一认证自定义异常处理

    本文完整代码下载点击 一. 前言 相信了解过我或者看过我之前的系列文章应该多少知道点我写这些文章包括创建 有来商城youlai-mall 这个项目的目的,想给那些真的想提升自己或者迷茫的人(包括自己- ...

随机推荐

  1. P2201 数列编辑器

    传送门呀呀呀呀呀呀呀呀呀呀呀呀呀 \(乍一看题目好像很难\)(实际也确实很难) \(但是我们仔细看就发现,整个数列分成了光标前和光标后两组数列\) \(我们有什么理由不分开储存呢??\) \(然后光标 ...

  2. linux的用户管理、组管理

    用户管理:centos系统是一个多用户系统 用户分为三类: 超级用户(root) 用户id为 0 伪用户 用户id为1-499,虽然存在,但是不能用户登录 普通用户 用户id为500-60000 用户 ...

  3. LeetCode--Unique Email Addresses & Hamming Distance (Easy)

    929. Unique Email Addresses (Easy)# Every email consists of a local name and a domain name, separate ...

  4. STM32 TIM 多通道互补PWM波形输出配置快速入门

    platform:stm32f10xxx lib:STM32F10x_StdPeriph_Lib_V3.5.0 前言 在做三相逆变的时候,需要软件生成SVPWM波形,具体的算法需要产生三对互补的PWM ...

  5. webpack3 项目升级 webpack4

    由于 vue-cli 2 构建的项目是基于 webpack3,所以只能自己动手改动,至于升级 webpack4之后提升的编译速度以及各种插件自己去体验. 修改配置 1.替换插件 extract-tex ...

  6. NOI Online #2 赛后题解

    color 题意 \(\;\) 给定\(p_1,p_2\),要求\(p_1\)的倍数格子填红色,\(p_2\)的倍数格子填蓝色,既是\(p_1\)又是\(p_2\)倍数的格子颜色任选.求是否存在一种填 ...

  7. Vue.js-Vue的初体验

    我是参考https://www.cnblogs.com/kidney/p/6052935.html 这位大神的 最开始接触vue的时候,是他的input框输入的文字和旁边的span展示的文字同步,当时 ...

  8. spring源码解析之前置知识点

    本文是作者原创,版权归作者所有.若要转载,请注明出处. 最近在看spring源码,但是spring的体系太庞大了,在这里记录一下阅读源码中遇到知识点 @PostConstruct 被注解的方法,在对象 ...

  9. quartz 定时任务调度管理器

    本项目使用的是spring-quartz 以下配置可以开启多个已知定时任务 <?xml version="1.0" encoding="UTF-8"?&g ...

  10. elasticsearch 小总结

    elasticsearch 小总结 0. 起因 距离初次写关于es的文章 https://blog.csdn.net/aca_jingru/article/details/44488703 已经过去4 ...