1.在MyEclipse中创建SpringCloudfu父maven project模块
(1)File->new->other->maven->maven project
<1>记得勾选框(两个都选),这里仅仅只是需要该项目的pom.xml文件
<2>packging选择pom
<3>生成后,有src文件,删除该文件,只保留pom.xml文件
(2)修改pom.xml文件内容
<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.bisien</groupId>
<artifactId>SpringCloud-Parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>SpringCloud-Parent</name>
<url>http://maven.apache.org</url>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<!--声明SpringBoot版本2.0.3 -->
<version>2.0.3.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<!-- SpringBoot版本2.0对应SpringCloud版本Finchley版本
SpringBoot版本2.1对应SpringCloud版本Finchley版本、Greenwich版本 -->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- 声明SpringCloud版本Greenwich.SR1 -->
<spring-cloud.version>Greenwich.SR1</spring-cloud.version>
<!-- <spring-cloud.version>Finchley.RELEASE</spring-cloud.version> -->
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<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>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.6</version>
</plugin>
</plugins>
</build>
</project>
2.在搭建项目的过程中问题
(1)引入依赖时,pom文件总是报错
(2)这一般是springboot和springcloud的版本不一致造成
(3)springboot和springcloud的版本关系如下:
<1>SpringBoot版本 SpringCloud版本
1.2.x Angel版本
1.3.x Brixton版本
1.4.x Camden版本
1.5.x Dalston版本
2.0.x Finchley版本
2.1.x Finchley版本、Greenwich版本
(4)eurkea与SpringBoot版本的关系
<1>1.5的版本eurkea的提供,是不区分服务端、客户端的
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<2>2.0开始之后,是区分了server、client的哦
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka- server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
3.新建这个父工程后
(1)发现它其实只有一个pom文件,没有什么业务功能
(2)但是工作中都会新建一个这样的项目目录,它的作用如下
<1>工作中,整个项目的名称就是这个maven项目的名称
1.1.在svn中拉取项目下,只要拉这个主工程的分支就行了
<2>它的pom文件会定义为父pom
2.1.后续的module工程可以继承该pom
2.2.很多module工程共用的配置,都可以放到这里
2.3.在父工程的pom中可以添加公共依赖
2.4.子项目都可以通用依赖,这样可以减少子项目pom中添加的依赖数目,避免重复添加依赖
4.遇到的问题
(1)创建完父工程后,在父工程下创建子模块报错
<1>每个子模块的pom配置文件首行报错
<2>报错信息如下:
org.apache.maven.archiver.MavenArchiver.getManifest
(org.apache.maven.project.MavenProject,
org.apache.maven.archiver.MavenArchiveConfiguration)
(2)解决方案
<1>在父工程下的pom配置文件中添加如下配置
<properties>
<maven-jar-plugin.version>2.6</maven-jar-plugin.version>
</properties>
或者
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.6</version>
</plugin>
<2>添加完成后更新项目:Maven->update project
<3>spring-boot-maven-plugin插件在打Jar包时会引入依赖包
3.1.是一个打包(jar)插件
3.2.该插件提供了构建jar的功能,用来处理依赖包版本问题