SpringCloud之整体聚合父工程Project

SpringCloud之整体聚合父工程Project

1.New Project

SpringCloud之整体聚合父工程Project_第1张图片

SpringCloud之整体聚合父工程Project_第2张图片

  • 创建父工程pom文件报错

SpringCloud之整体聚合父工程Project_第3张图片

  • 解决方法为导入依赖,暂时不用做这一步,下面还会涉及到

<dependency>
    <groupId>org.apache.maven.pluginsgroupId>
    <artifactId>maven-project-info-reports-pluginartifactId>
    <version>3.1.1version>
dependency>

2.字符编码

SpringCloud之整体聚合父工程Project_第4张图片

3.注解生效激活

SpringCloud之整体聚合父工程Project_第5张图片

4.java编译版本选8

SpringCloud之整体聚合父工程Project_第6张图片

5.File Type过滤

SpringCloud之整体聚合父工程Project_第7张图片

SpringCloud之整体聚合父工程Project_第8张图片

6.删掉src

SpringCloud之整体聚合父工程Project_第9张图片

7.跳过单元测试

SpringCloud之整体聚合父工程Project_第10张图片

8.指定项目打包类型

项目的打包类型有三种:pomjarwar

  • 这里指定为pom

<packaging>pompackaging>

9.Maven工程落地细节

这里一边介绍Maven中的DependencyManagementDependencies关系,一边完善pom文件的编写

简要介绍

  • Maven使用dependencyManagement元素来提供了一种管理依赖版本号的方式。通常会在一个组织或者项目的最顶层的父POM中看到dependencyManagement 元素。
  • 使用pom.xml中的dependencyManagement元素能让所有在子项目中引用一个依赖而不用显式的列出版本号。Maven会沿着父子层次向上走,直到找到一个拥有dependencyManagement元素的项目,然后它就会使用这个dependencyManagement元素中指定的版本号。

示例

  • 首先可以插入properties节点,在下面指定整个工程需要使用到的jar包版本。(当然也可以直接在Dependence节点中直接指定版本号,相比之下,使用properties能够更加清晰的管理jar包版本)

<properties>
    <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
    <maven.compiler.source>1.8maven.compiler.source>
    <maven.compiler.target>1.8maven.compiler.target>
    <junit.version>4.13.1junit.version>
    <lombok.version>1.18.18lombok.version>
    <log4j.version>1.2.17log4j.version>
    <mysql.version>5.1.49mysql.version>
    <druid.version>1.2.4druid.version>
    <mybatis.spring.boot.version>2.1.4mybatis.spring.boot.version>
properties>
  • DependencyManagement节点添加所需依赖坐标,这里只是一个示例。

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.mybatis.spring.bootgroupId>
            <artifactId>mybatis-spring-boot-starterartifactId>
            <version>${mybatis.spring.boot.version}version>
        dependency>
    dependencies>
dependencyManagement>
  • 在子项目中的pom文件填写依赖,可以看到,不需要填写version标签

<dependency>
    <groupId>junitgroupId>
    <artifactId>junitartifactId>
dependency>

好处

  • 如果有多个子项目都引用同一样依赖,则可以避免在每个使用的子项目里都声明一个版本号,这样当想升级或切换到另一个版本时,只需要在顶层父容器里更新,而不需要一个一个子项目的修改;另外如果某个子项目需要另外的一个版本,只需要声明version就可。也就是==“一处修改,处处报错”==(手动滑稽)

注意

  • dependencyManagement里只是声明依赖,并不实现引入,因此子项目需要显示的声明需要用的依赖。
  • 如果不在子项目中声明依赖,是不会从父项自中继承下来的,只有在子项目中写了该依赖项,并且没有指定具体版本,才会从父项目中继承该项,并且versionscope都读取自父pom
  • 如果子项目中指定了版本号,那么会使用子项目中指定的jar版本。

完整代码



<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.0modelVersion>

    <groupId>com.phz.springcloudgroupId>
    <artifactId>SpringCloudDemoartifactId>
    <version>1.0-SNAPSHOTversion>
    
    <packaging>pompackaging>

    
    <properties>
        <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
        <maven.compiler.source>1.8maven.compiler.source>
        <maven.compiler.target>1.8maven.compiler.target>
        <junit.version>4.13.1junit.version>
        <lombok.version>1.18.18lombok.version>
        <log4j.version>1.2.17log4j.version>
        <mysql.version>5.7.31mysql.version>
        <druid.version>1.2.4druid.version>
        <mybatis.spring.boot.version>2.1.4mybatis.spring.boot.version>
    properties>
    
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.apache.maven.pluginsgroupId>
                <artifactId>maven-project-info-reports-pluginartifactId>
                <version>3.1.1version>
            dependency>
            
            <dependency>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-dependenciesartifactId>
                <version>2.4.2version>
                <type>pomtype>
                <scope>importscope>
            dependency>
            
            <dependency>
                <groupId>org.springframework.cloudgroupId>
                <artifactId>spring-cloud-dependenciesartifactId>
                <version>2020.0.1version>
                <type>pomtype>
                <scope>importscope>
            dependency>
            
            <dependency>
                <groupId>com.alibaba.cloudgroupId>
                <artifactId>spring-cloud-alibaba-dependenciesartifactId>
                <version>2.2.1.RELEASEversion>
                <type>pomtype>
                <scope>importscope>
            dependency>
            
            <dependency>
                <groupId>mysqlgroupId>
                <artifactId>mysql-connector-javaartifactId>
                <version>${mysql.version}version>
                <scope>runtimescope>
            dependency>
            
            <dependency>
                <groupId>com.alibabagroupId>
                <artifactId>druidartifactId>
                <version>${druid.version}version>
            dependency>
            <dependency>
                <groupId>org.mybatis.spring.bootgroupId>
                <artifactId>mybatis-spring-boot-starterartifactId>
                <version>${mybatis.spring.boot.version}version>
            dependency>
            
            <dependency>
                <groupId>junitgroupId>
                <artifactId>junitartifactId>
                <version>${junit.version}version>
            dependency>
            
            <dependency>
                <groupId>log4jgroupId>
                <artifactId>log4jartifactId>
                <version>${log4j.version}version>
            dependency>
        dependencies>
    dependencyManagement>
project>

小提示,如果发现已经导入了lombok依赖,但是注解仍然失效的话,那应该是没有安装lombok插件的原因,idea插件市场直接搜索安装即可,但是本人是经常遇到插件市场连不了网的问题,那就上git仓库选择对应版本的lombok下载安装就可以了,点击跳转

SpringCloud之整体聚合父工程Project_第11张图片

SpringCloud之整体聚合父工程Project_第12张图片

你可能感兴趣的:(maven,spring,cloud,java)