【springcloud合集】03:IDEA新建父工程project

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 【springcloud合集】03:IDEA新建父工程project

一个毕业后差一点进大厂的程序员的进阶之路——既为巩固知识,也为增长粉丝


个人微信公众号【一条IT】,每天分享软件,资源,教程,福利。



理解版本和理论之后正式进入编码阶段。


原则:约定 > 配置 > 编码


首先新建父工程

主要步骤

new maven工程


确定总工程的名字


配置maven(修改成阿里云镜像下载)


字符编码


注解生效激活


Java版本选8


*File Type过滤和默认作者模板


1.新建maven工程

模板选择xxxxxxx-site

2020110518353560.png

补充知识:maven各模板的区别


新建Maven project项目时,需要选择archetype。


archetype的意思是模板原型,是一个Maven项目模板工具包。一个原型被定义为从其中相同类型的所有其它事情是由一个原始图案或模型。名称配合,因为我们正在努力提供一种系统,该系统提供了一种生成Maven项目的一致的手段。原型将帮助作者为用户创建Maven项目模板,并为用户提供了手段,产生的这些项目模板参数化的版本。


maven提供的41个骨架原型分别是:


1: appfuse-basic-jsf (创建一个基于Hibernate,Spring和JSF的Web应用程序的原型)

2: appfuse-basic-spring(创建一个基于Hibernate,Spring和Spring MVC的Web应用程序的原型)

3: appfuse-basic-struts(创建一个基于Hibernate,Spring和Struts 2的Web应用程序的原型)

4: appfuse-basic-tapestry(创建一个基于Hibernate,Spring 和 Tapestry 4的Web应用程序的原型)

5: appfuse-core(创建一个基于Hibernate,Spring 和 XFire的jar应用程序的原型)

6: appfuse-modular-jsf(创建一个基于Hibernate,Spring和JSF的模块化应用原型)

7: appfuse-modular-spring(创建一个基于Hibernate, Spring 和 Spring MVC 的模块化应用原型)

8: appfuse-modular-struts(创建一个基于Hibernate, Spring 和 Struts 2 的模块化应用原型)

9: appfuse-modular-tapestry (创建一个基于 Hibernate, Spring 和 Tapestry 4 的模块化应用原型)

10: maven-archetype-j2ee-simple(一个简单的J2EE的Java应用程序)

11: maven-archetype-marmalade-mojo(一个Maven的 插件开发项目 using marmalade)

12: maven-archetype-mojo(一个Maven的Java插件开发项目)

13: maven-archetype-portlet(一个简单的portlet应用程序)

14: maven-archetype-profiles()

15:maven-archetype-quickstart()

16: maven-archetype-site-simple(简单的网站生成项目)

17: maven-archetype-site(更复杂的网站项目)

18:maven-archetype-webapp(一个简单的Java Web应用程序)

19: jini-service-archetype(Archetype for Jini service project creation)

20: softeu-archetype-seam(JSF+Facelets+Seam Archetype)

21: softeu-archetype-seam-simple(JSF+Facelets+Seam (无残留) 原型)

22: softeu-archetype-jsf(JSF+Facelets 原型)

23: jpa-maven-archetype(JPA 应用程序)

24: spring-osgi-bundle-archetype(Spring-OSGi 原型)

25: confluence-plugin-archetype(Atlassian 聚合插件原型)

26: jira-plugin-archetype(Atlassian JIRA 插件原型)

27: maven-archetype-har(Hibernate 存档)

28: maven-archetype-sar(JBoss 服务存档)

29: wicket-archetype-quickstart(一个简单的Apache Wicket的项目)

30: scala-archetype-simple(一个简单的scala的项目)

31: lift-archetype-blank(一个 blank/empty liftweb 项目)

32: lift-archetype-basic(基本(liftweb)项目)

33: cocoon-22-archetype-block-plain([http://cocoapacorg2/maven-plugins/])

34: cocoon-22-archetype-block([http://cocoapacorg2/maven-plugins/])

35:cocoon-22-archetype-webapp([http://cocoapacorg2/maven-plugins/])

36: myfaces-archetype-helloworld(使用MyFaces的一个简单的原型)

37: myfaces-archetype-helloworld-facelets(一个使用MyFaces和Facelets的简单原型)

38: myfaces-archetype-trinidad(一个使用MyFaces和Trinidad的简单原型)

39: myfaces-archetype-jsfcomponents(一种使用MyFaces创建定制JSF组件的简单的原型)

40: gmaven-archetype-basic(Groovy的基本原型)

41: gmaven-archetype-mojo(Groovy mojo 原型)


(41中骨架原文链接:http://www.cnblogs.com/iusmile/archive/2012/11/14/2770118.html


2.确定总工程名字

springcloud整体架构是一个总的父工程和各分支模块,在新建maven时输入的名字是总的工程名字,以后再新建各种moudles。


这个我用的名字是cloud2020


3.配置maven

这里不用IDEA的maven,用自己安装的,下载速度快。


修改配置文件maven/conf/settings.xml,将官方的注释掉,添加下面代码


 <mirror>
    <id>alimaven</id>
    <name>aliyun maven</name>
    <url>https://maven.aliyun.com/nexus/content/repositories/central/</url>
    <mirrorOf>central</mirrorOf>
    </mirror>

4.设置字符编码utf-8

打开设置快捷键:ctrl+alt+s

20201105184738693.png

5.注解生效激活

20201105184918225.png

6.选择Java版本8

20201105185013769.png

7.File Type过滤和默认作者模板(可选)

file type:过滤掉和编码无关的文件,如.idea,是界面简洁

20201105185216649.png

默认作者模板:每次新建文件都会自动注释说明作者和创建时间

20201105185330245.png

配置父工程pom.xml

1.删除src整个,只留pom.xml

2.替换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>com.li.springcloud</groupId>
  <artifactId>cloud2020</artifactId>
  <version>1.0-SNAPSHOT</version>
  <modules>
    <module>cloud-provider-payment8001</module>
  </modules>
  <packaging>pom</packaging>
  <!-- 统一管理jar包版本 -->
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
    <junit.version>4.12</junit.version>
    <log4j.version>1.2.17</log4j.version>
    <lombok.version>1.16.18</lombok.version>
    <mysql.version>5.1.47</mysql.version>
    <druid.version>1.1.16</druid.version>
    <mybatis.spring.boot.version>1.3.0</mybatis.spring.boot.version>
  </properties>
  <!-- 子模块继承之后,提供作用:锁定版本+子modlue不用写groupId和version  -->
  <dependencyManagement>
    <dependencies>
      <!--spring boot 2.2.2-->
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-dependencies</artifactId>
        <version>2.2.2.RELEASE</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <!--spring cloud Hoxton.SR1-->
      <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-dependencies</artifactId>
        <version>Hoxton.SR1</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <!--spring cloud alibaba 2.1.0.RELEASE-->
      <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-alibaba-dependencies</artifactId>
        <version>2.1.0.RELEASE</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>${mysql.version}</version>
      </dependency>
      <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid</artifactId>
        <version>${druid.version}</version>
      </dependency>
      <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>${mybatis.spring.boot.version}</version>
      </dependency>
      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>${junit.version}</version>
      </dependency>
      <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>${log4j.version}</version>
      </dependency>
      <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>${lombok.version}</version>
        <optional>true</optional>
      </dependency>
    </dependencies>
  </dependencyManagement>
  <build>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        <configuration>
          <fork>true</fork>
          <addResources>true</addResources>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

粘贴完成后右下角点击开启自动导入,等待下载依赖,时间很长。


<dependencyManagement>的作用


1.统一管理子工程的版本,如果子工程想使用和父工程一样的版本,可以省去groupid和version


2.如果写了版本,则以写的为准


3.父工程只起到版本管理功能,没有下载依赖功能,子工程里没写的依赖不会下载


跳过单元测试

20201105190910898.png

总结

到此,父工程已经建完,以后的moudle全在此目录新建并且版本交给父工程管理,要注意区分子工程和父工程的pom文件,不要改错了。

下一节将建立第一个微服务工程——支付模块

20201105191201501.png

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
7月前
|
SpringCloudAlibaba Java 网络架构
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(二)Rest微服务工程搭建
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(二)Rest微服务工程搭建
169 0
|
4月前
|
存储 Dubbo API
SpringCloud工程部署启动
本节笔者带领大家完成了SpringCloud工程从0->1的搭建,当然你不想搭建也可以直接采用方案一,二者等效,至此读者们完成了一个微服务工程的搭建、部署、访问。同时在本节最后一章,笔者基于RestTemplate发起的http请求实现远程调用,实现当A系统想要获取B系统数据时的跨系统数据交互。然而RESTful API访问并不是微服务的唯一解决方案,如Dubbo的交互一样可以实现,希望读者们能不限于此。
|
7月前
|
Java Maven Spring
【操作宝典】IntelliJ IDEA新建maven项目详细教程
【操作宝典】IntelliJ IDEA新建maven项目详细教程
337 1
|
4月前
|
Java Android开发
如何使用IDEA创建一个简单的java工程?
这篇文章提供了使用IntelliJ IDEA创建简单Java工程的步骤,包括在`src`目录下建立两个特定的包。
如何使用IDEA创建一个简单的java工程?
|
4月前
|
Java Maven
IDEA 报 Unable to import maven project: See logs for details
IDEA 报 Unable to import maven project: See logs for details
52 0
|
6月前
2024新版中文IDEA之如何在boot工程内隐藏项目中的无用文件
2024新版中文IDEA之如何在boot工程内隐藏项目中的无用文件
51 4
|
7月前
|
uml
【经验分享】如何在IDEA中快速学习|审查|复习代码工程?
在IDEA中加速工程学习与审查,提升代码质量和维护性,关键操作包括:使用&quot;Structure&quot;浏览工程结构,通过&quot;Find Usages&quot;查找类、方法或变量引用,借助&quot;Show Local Changes As UML&quot;展示UML图。遵循从整体到局部的UML图学习,再到具体代码的详细探索,可系统理解设计理念。详情参考[IDEA UML教程](https://blog.csdn.net/weixin_44701426/article/details/124598053)。
60 1
【经验分享】如何在IDEA中快速学习|审查|复习代码工程?
|
7月前
idea中新建分支并且切换到新建的分支上
idea中新建分支并且切换到新建的分支上
488 0
|
7月前
|
Java Spring
IDEA 创建 SpringCloud项目-多项目方式
IDEA 创建 SpringCloud项目-多项目方式
170 0
|
7月前
|
SpringCloudAlibaba Java 持续交付
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(一)基础知识+各个组件介绍+聚合父工程创建
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(一)基础知识+各个组件介绍+聚合父工程创建
771 1