maven实战pom文件详解

<?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">
    <!-- maven的版本号,maven2,3对应的都是4.0.0. -->
    <modelVersion>4.0.0</modelVersion>

    <!--    关于文件目录安装约定:src/main/java(源代码)src/main/resource(资源文件)src/test/java(测试代码)-->

    <!-- 建议公司+项目 -->
    <groupId>cn.boyxie.springboot</groupId>
    <!-- 建议项目+模块 -->
    <artifactId>maven-test</artifactId>
    <!--  注释用  -->
    <name>test maven</name>
    <!-- 版本号, SNAPSHOT为快照,值不稳定版本-->
    <version>1.0-SNAPSHOT</version>
    <!--  聚合打包值必须我pom,多模块一起打包  -->
    <packaging>pom</packaging>

    <!--  子模块  -->
    <modules>
        <module>modules/mavenTest-rest</module>
        <module>modules/mavenTest-sdk</module>
    </modules>

    <!--  抽取统一属性  -->
    <properties>
        <maven-javadoc-plugin.version>2.9.1</maven-javadoc-plugin.version>
        <maven-jar-plugin.version>2.6</maven-jar-plugin.version>
        <maven-compiler-plugin.version>2.1</maven-compiler-plugin.version>
        <maven-surefire-plugin.version>2.19.1</maven-surefire-plugin.version>
        <skipTests>true</skipTests>
        <swagger.version>1.5.21</swagger.version>
        <springfox-swagger.version>2.9.2</springfox-swagger.version>
        <swagger-bootstrap-ui.version>1.9.3</swagger-bootstrap-ui.version>
        <fastjson.version>1.2.56</fastjson.version>
    </properties>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.6.RELEASE</version>
        <!--     父模块的pom绝对路径   -->
        <relativePath/>
    </parent>

    <!--  mvn dependencies:list或者tree或者analyze 可查询依赖详情  -->
    <!-- 依赖原则:路径最近者优先,第一声明者优先   -->
    <!--  子pom完全继承的依赖  -->
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <version>0.9.0.RELEASE</version>
            <!-- 默认jar-->
            <type>jar</type>
            <!-- 编译,测试,运行3中环境 默认compile ,还有test,provide(对运行无效,列如servlet),runtime(对编译无效),
            system(与systemPath联合使用)-->
            <scope>compile</scope>
            <systemPath>${basedir}/src/api</systemPath>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <!-- 排除依赖 -->
                <exclusion>
                    <groupId>org.apache.tomcat</groupId>
                    <artifactId>servlet-api</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
    </dependencies>
    <!--子pom选择性继承的依赖-->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>io.swagger</groupId>
                <artifactId>swagger-annotations</artifactId>
                <version>${swagger.version}</version>
            </dependency>
            <dependency>
                <groupId>com.geely.markting</groupId>
                <artifactId>app-auth-service-sdk</artifactId>
                <version>1.0-SNAPSHOT</version>
                <scope>compile</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Greenwich.SR1</version>
                <!--        下面两个一起使用,指导入该pom 声明的 dependencyManagement的依赖      -->
                <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-javadoc-plugin</artifactId>
                <version>${maven-javadoc-plugin.version}</version>
                <configuration>
                    <skip>true</skip>
                    <aggregate>true</aggregate>
                    <charset>UTF-8</charset>
                    <encoding>UTF-8</encoding>
                    <docencoding>UTF-8</docencoding>
                </configuration>
            </plugin>
            <!--        打包插件    -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>${maven-jar-plugin.version}</version>
            </plugin>
            <!-- 指定编译版本号 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>${maven-compiler-plugin.version}</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <!--   测试插件     -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>${maven-surefire-plugin.version}</version>
                <configuration>
                    <!-- 配置需要的测试类  -->
                    <incloudes>
                        <incloude></incloude>
                    </incloudes>
                    <excludes>
                        <exclude></exclude>
                    </excludes>
                    <!-- 设置成true在使用maven打包发布时不做junit测试 -->
                    <skip>${skipTests}</skip>
                </configuration>
            </plugin>
        </plugins>
        <!--    作用于 dependencyManagement类似   -->
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.tomcat</groupId>
                    <artifactId>servlet-api</artifactId>
                    <version>6.0.53</version>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>
    <repositories>
        <!--   指定下载的仓库     -->
        <repository>
            <id>alimaven</id>
            <name>aliyun maven</name>
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>
    <!--  指定要发布的仓库  -->
    <distributionManagement>
        <repository>
            <id>central</id>
            <name>Maven Central</name>
            <url>http://repo1.maven.org/maven2/</url>
        </repository>
        <snapshotRepository>
            <id>central</id>
            <name>Maven Central</name>
            <url>http://repo1.maven.org/maven2/</url>
        </snapshotRepository>
    </distributionManagement>
    <!--  配置在setting.xml文件中,匹配上面的仓库id  -->
    <servers>
        <server>
            <id>tomcat</id>
            <username>tomcat</username>
            <password>s3cret</password>
        </server>
    </servers>
</project>

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值