pom文件标签含义

pom文件标签含义

<?xml version="1.0" encoding="UTF-8"?>
<!-- xml限制头 scheme -->
<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">
</project>
    <!--父模块-->
    <parent>
        <groupId>org.sonatype.oss</groupId>
        <artifactId>oss-parent</artifactId>
        <version>9</version>
    </parent>
<!--项目或者组织的唯一标志-->
<groupId>com.github.mpusher</groupId>
<!--项目的通用名称-->
<artifactId>mpush</artifactId>
<!--打包的机制-->
<packaging>pom</packaging>
<!--项目版本-->
<version>0.8.1</version>
<!--项目的名称,maven产生的文档用-->
<name>mpush</name>
<!--项目的描述-->
<description>MPUSH消息推送系统</description>
<!--哪些网站可以找到这个项目,提示如果maven资源没有的话,可以上该网站进行寻找,maven产生的文档用-->
<url>https://github.com/mpusher/mpush</url>
<!--版本许可,描述了采用的开源协议是什么-->
<licenses>
    <license>
        <name>The Apache Software License, Version 2.0</name>
        <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        <distribution>repo</distribution>
    </license>
</licenses>
<!--允许配置我们自己的代码库,未maven web站点和其他插件使用-->
<scm>
    <tag>v${project.version}</tag>
    <url>https://github.com/mpusher/mpush</url>
    <connection>scm:git:git://github.com/mpusher/mpush.git</connection>
    <developerConnection>scm:git:ssh://github.com/mpusher/mpush.git</developerConnection>
</scm>
<!--定义相应的bug跟踪系统,-->
<issueManagement>
    <system>GitHub Issues</system>
    <url>https://github.com/mpusher/mpush/issues</url>
</issueManagement>
<!--配置组织信息-->
<organization>
    <name>MPusher, Inc.</name>
    <url>https://mpusher.io</url>
</organization>
<!--开发者信息-->
<developers>
    <developer>
        <name>夜色</name>
        <email>ohun@live.cn</email>
        <organization>mpusher</organization>
    </developer>
</developers>
<!--子模块-->
<modules>
    <module>mpush-api</module>
    <module>mpush-boot</module>
    <module>mpush-core</module>
    <module>mpush-tools</module>
    <module>mpush-netty</module>
    <module>mpush-common</module>
    <module>mpush-client</module>
    <module>mpush-test</module>
    <module>mpush-monitor</module>
    <module>mpush-zk</module>
    <module>mpush-cache</module>
</modules>
<!-- 统一管理jar包版本 -->
<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.encoding>UTF-8</java.encoding>
    <java.version>1.8</java.version>
    <netty.version>4.1.25.Final</netty.version>
    <slf4j.version>1.7.25</slf4j.version>
    <os.detected.classifier>linux-x86_64</os.detected.classifier>
</properties>
   <!--用于父项目配置共同的依赖关系,主要配置依赖包相同因素-->
   <!-- 锁定jar包版本 -->
    <dependencyManagement>
        <dependencies>
            <!-- ======================================== -->
            <!-- netty依赖 -->
            <!-- ======================================== -->
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-codec</artifactId>
                <version>${netty.version}</version>
            </dependency>
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-transport</artifactId>
                <version>${netty.version}</version>
            </dependency>
            <!-- ======================================== -->
            <!-- 子模块依赖 -->
            <!-- ======================================== -->
            <dependency>
                <groupId>${project.groupId}</groupId>
                <artifactId>mpush-test</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>${project.groupId}</groupId>
                <artifactId>mpush-api</artifactId>
                <version>${project.version}</version>
            </dependency>
            <!-- ================================================= -->
            <!-- 日志 -->
            <!-- ================================================= -->
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
            <!-- ======================================== -->
            <!-- 第三方依赖 -->
            <!-- ======================================== -->
            <!-- junit -->
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.10</version>
                <scope>test</scope>
            </dependency>
            <!-- zookeeper client -->
            <dependency>
                <groupId>org.apache.curator</groupId>
                <artifactId>curator-recipes</artifactId>
                <version>2.12.0</version>
               <!--  exclusion标签可以排除某个包里面的某一个包,排除某个jar包的依赖包 -->
                <exclusions>
                    <exclusion>
                        <artifactId>netty</artifactId>
                        <groupId>io.netty</groupId>
                    </exclusion>
                </exclusions>
            </dependency>
    </dependencyManagement>
<!-- 项目依赖jar包 -->
<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>io.netty</groupId>
        <artifactId>netty-transport-udt</artifactId>
        <version>${netty.version}</version>
    </dependency>
    <dependency>
        <groupId>io.netty</groupId>
        <artifactId>netty-transport-sctp</artifactId>
        <version>${netty.version}</version>
    </dependency>
</dependencies>
<!-- 编译配置 添加插件-->
<build>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.6.2</version>
            <configuration>
                <source>${java.version}</source>
                <target>${java.version}</target>
                <encoding>${java.encoding}</encoding>
            </configuration>
        </plugin>
        <plugin>
            <artifactId>maven-resources-plugin</artifactId>
            <version>3.0.2</version>
            <configuration>
                <encoding>${java.encoding}</encoding>
            </configuration>
        </plugin>
        <plugin>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.20</version>
            <configuration>
                <skip>true</skip>
            </configuration>
        </plugin>
    </plugins>
</build>
<!-- 此文件可以配置在setting中,用于储存用户信息,账户名和密码,可用于私服-->
<profiles>
    <profile>
        <id>dev</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <properties>
            <deploy.env>dev</deploy.env>
        </properties>
    </profile>
    <profile>
        <id>pub</id>
        <properties>
            <deploy.env>pub</deploy.env>
        </properties>
    </profile>
</profiles>

Scope 含义

compile (编译范围)

compile是默认的范围;如果没有提供一个范围,那该依赖的范围就是编译范围。编译范围依赖在所有的classpath 中可用,同时它们也会被打包。

provided (已提供范围)

provided 依赖只有在当JDK 或者一个容器已提供该依赖之后才使用。例如, 如果你开发了一个web 应用,你可能在编译

classpath 中需要可用的Servlet API 来编译一个servlet,但是你不会想要在打包好的WAR 中包含这个Servlet API;这个

Servlet API JAR 由你的应用服务器或者servlet 容器提供。已提供范围的依赖在编译classpath (不是运行时)可用。它们

不是传递性的,也不会被打包。

runtime (运行时范围)

runtime 依赖在运行和测试系统的时候需要,但在编译的时候不需要。比如,你可能在编译的时候只需要JDBC API JAR,而只有在运行的时候才需要JDBC 驱动实现。

test (测试范围)

test范围依赖 在一般的编译和运行时都不需要,它们只有在测试编译和测试运行阶段可用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值