Maven

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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.5.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>web1</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <description>web1</description>

    <!--
        用户配置文件 ~/.m2/settings.xml  C:/Users/Administrator/.m2/settings.xml

        基本元素
        xml 指定了该xml文档的版本和编码方式
        project 是所有pom.xml的根元素,它还声明了一些POM相关的命名空间及xsd元素
        modelVersion 根元素下的第一个子元素modelVersion指定了当前的POM模型的版本,对于Maven3来说,它只能是4.0.0
        groupId,artifactId和version,这三个元素定义了一个项目基本的坐标,在Maven的世界,任何的jar、pom或者jar都是以基于这些基本的坐标进行区分的
        groupId 定义了项目属于哪个组,随意命名,比如谷歌公司的myapp项目,就取名为 com.google.myapp
        artifactId 定义了当前Maven项目在组中唯一的ID,比如定义hello-world
        version 指定了项目当前的版本0.0.1-SNAPSHOT,SNAPSHOT意为快照,说明该项目还处于开发中,是不稳定的
        name 元素声明了一个对于用户更为友好的项目名称,虽然这不是必须的,但还是推荐为每个POM声明name,以方便信息交流
    -->

    <!--
        Maven常用命令说明
        mvn clean:表示运行清理操作(会默认把target文件夹中的数据清理)。
        mvn clean compile:表示先运行清理之后运行编译,会将代码编译到target文件夹中。
        mvn clean test:运行清理和测试。
        mvn clean package:运行清理和打包。
        mvn clean install:运行清理和安装,会将打好的包安装到本地仓库中,以便其他的项目可以调用。
        mvn clean deploy:运行清理和发布(发布到私服上面)。
    -->

    <!-- 大部分情况下,该元素不必声明,其默认值为jar -->
    <packaging>pom</packaging>

    <name>web1</name>

    <properties>
        <java.version>1.8</java.version>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <spring.boot.version>2.2.5.RELEASE</spring.boot.version>
        <spring.cloud.alibaba.version>2.1.0.RELEASE</spring.cloud.alibaba.version>
    </properties>

    <modules>
        <module>web1_1</module>
    </modules>

    <!--
    依赖的配置
    <dependencies>
        <dependency>
              <groupId>实际项目</groupId>
                <artifactId>模块</artifactId>
                <version>版本/归类依赖${java.version}</version>
                <type>依赖类型</type>
                <scope>依赖范围</scope>
                <optional>依赖是否可选</optional>
                //主要用于排除传递性依赖
                <exclusions>
                    <exclusion>
                        <groupId>...</groupId>
                       <artifactId>...</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
        <dependencies>
        根元素project下的dependencies可以包含一个或者多个dependency元素,以声明一个或者多个项目依赖。每个依赖可以包含的元素有:
        grounpId、artifactId和version:基本坐标,对于任何一个依赖来说,基本坐标是最重要的,Maven根据坐标才能找到需要的依赖。
        type:依赖的类型,对于项目坐标定义的packaging。大部分情况下,该元素不必声明,其默认值为jar
        scope:依赖的范围
        optional:标记依赖是否可选 false true
        exclusions:用来排除传递性依赖

        依赖范围: system runtime provided compile
        传递性依赖:依赖的依赖,层级包含


    -->
    <dependencies>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.3</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.16</version>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>3.5.1 </version>
        </dependency>
        <dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity-engine-core</artifactId>
            <version>2.0</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.8.0</version>
        </dependency>

        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>4.5.15</version>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
            <version>4.3.0</version>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>io.github.swagger2markup</groupId>
                <artifactId>swagger2markup-maven-plugin</artifactId>
                <version>1.3.1</version>
                <configuration>
                    <!-- api-docs访问url -->
                    <swaggerInput>http://localhost:4001/v2/api-docs</swaggerInput>
                    <!-- 生成为单个文档,输出路径
                    <outputFile>src/main/doc/api</outputFile>-->
                    <!-- 生成为多个文档,输出路径 -->
                    <outputDir>Web1_2/src/main/resources/ui</outputDir>
                    <config>
                        <!-- wiki格式文档 -->
                        <!--<swagger2markup.markupLanguage>CONFLUENCE_MARKUP</swagger2markup.markupLanguage> -->
                        <!-- ascii格式文档 -->
                        <swagger2markup.markupLanguage>ASCIIDOC</swagger2markup.markupLanguage>
                        <!-- markdown格式文档 -->
                        <!--<swagger2markup.markupLanguage>MARKDOWN</swagger2markup.markupLanguage>-->
                        <swagger2markup.pathsGroupedBy>TAGS</swagger2markup.pathsGroupedBy>
                    </config>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

参考文档: Maven入门,读完这篇就够了

相关推荐
一只爱打拳的程序猿9 分钟前
【Spring】更加简单的将对象存入Spring中并使用
java·后端·spring
杨荧10 分钟前
【JAVA毕业设计】基于Vue和SpringBoot的服装商城系统学科竞赛管理系统
java·开发语言·vue.js·spring boot·spring cloud·java-ee·kafka
minDuck12 分钟前
ruoyi-vue集成tianai-captcha验证码
java·前端·vue.js
为将者,自当识天晓地。31 分钟前
c++多线程
java·开发语言
daqinzl39 分钟前
java获取机器ip、mac
java·mac·ip
激流丶1 小时前
【Kafka 实战】如何解决Kafka Topic数量过多带来的性能问题?
java·大数据·kafka·topic
Themberfue1 小时前
Java多线程详解⑤(全程干货!!!)线程安全问题 || 锁 || synchronized
java·开发语言·线程·多线程·synchronized·
让学习成为一种生活方式1 小时前
R包下载太慢安装中止的解决策略-R语言003
java·数据库·r语言
晨曦_子画1 小时前
编程语言之战:AI 之后的 Kotlin 与 Java
android·java·开发语言·人工智能·kotlin
南宫生2 小时前
贪心算法习题其三【力扣】【算法学习day.20】
java·数据结构·学习·算法·leetcode·贪心算法