maven的pom.xml文件详解














4.0.0

asia.banseon

banseon-maven2

jar

1.0-SNAPSHOT

banseon-maven

http://www.baidu.com/banseon

A maven project to study maven.








jira

http://jira.xxxx.com/xxxx



































Demo

Demo@126.com

Demo@126.com

Demo@126.com

http://localhost:8080/demo/dev/







HELLO WORLD

youname

youname@qq.com




Project Manager
Architect


demo

http://www.xxx.com/


No


+8





















Apache 2

http://www.xxxx.com/LICENSE-2.0.txt

repo

A business-friendly OSS license






scm:svn:http://svn.xxxx.com/maven/xxxxx-maven2-trunk(dao-trunk)



scm:svn:http://svn.xxxx.com/maven/dao-trunk




http://svn.xxxxx.com/




demo

http://www.xxxxxx.com/
















































































































































Windows XP

Windows

x64

6.1.7100




mavenVersion

2.0.3




/usr/local/xxxx/xxxx-home/tomcat/maven-guide-zh-to-production/workspace/


/usr/local/xxxx/xxxx-home/tomcat/maven-guide-zh-to-production/workspace/






































































































































































banseon-repository-proxy

banseon-repository-proxy

http://10.10.10.123:8080/repository/

default






<!--该元素描述了项目相关的所有依赖。 这些依赖组成了项目构建过程中的一个个环节。它们自动从项目定义的仓库中下载。要获取更多信息,请看项目依赖机制。 -->  
<dependencies>  
    <dependency>  
        <!--依赖的group ID -->  
        <groupId>org.apache.maven</groupId>  
        <!--依赖的artifact ID -->  
        <artifactId>maven-artifact</artifactId>  
        <!--依赖的版本号。 在Maven 2里, 也可以配置成版本号的范围。 -->  
        <version>3.8.1</version>  
        <!--依赖类型,默认类型是jar。它通常表示依赖的文件的扩展名,但也有例外。一个类型可以被映射成另外一个扩展名或分类器。类型经常和使用的打包方式对应,尽管这也有例外。一些类型的例子:jar,war,ejb-client和test-jar。如果设置extensions为   
            true,就可以在plugin里定义新的类型。所以前面的类型的例子不完整。 -->  
        <type>jar</type>  
        <!--依赖的分类器。分类器可以区分属于同一个POM,但不同构建方式的构件。分类器名被附加到文件名的版本号后面。例如,如果你想要构建两个单独的构件成JAR,一个使用Java   
            1.4编译器,另一个使用Java 6编译器,你就可以使用分类器来生成两个单独的JAR构件。 -->  
        <classifier></classifier>  
        <!--依赖范围。在项目发布过程中,帮助决定哪些构件被包括进来。欲知详情请参考依赖机制。 - compile :默认范围,用于编译 - provided:类似于编译,但支持你期待jdk或者容器提供,类似于classpath   
            - runtime: 在执行时需要使用 - test: 用于test任务时使用 - system: 需要外在提供相应的元素。通过systemPath来取得   
            - systemPath: 仅用于范围为system。提供相应的路径 - optional: 当项目自身被依赖时,标注依赖是否传递。用于连续依赖时使用 -->  
        <scope>test</scope>  
        <!--仅供system范围使用。注意,不鼓励使用这个元素,并且在新的版本中该元素可能被覆盖掉。该元素为依赖规定了文件系统上的路径。需要绝对路径而不是相对路径。推荐使用属性匹配绝对路径,例如${java.home}。 -->  
        <systemPath></systemPath>  
        <!--当计算传递依赖时, 从依赖构件列表里,列出被排除的依赖构件集。即告诉maven你只依赖指定的项目,不依赖项目的依赖。此元素主要用于解决版本冲突问题 -->  
        <exclusions>  
            <exclusion>  
                <artifactId>spring-core</artifactId>  
                <groupId>org.springframework</groupId>  
            </exclusion>  
        </exclusions>  
        <!--可选依赖,如果你在项目B中把C依赖声明为可选,你就需要在依赖于B的项目(例如项目A)中显式的引用对C的依赖。可选依赖阻断依赖的传递性。 -->  
        <optional>true</optional>  
    </dependency>  
</dependencies>  
<!--不赞成使用. 现在Maven忽略该元素. -->  
<reports></reports>  
<!--该元素描述使用报表插件产生报表的规范。当用户执行“mvn site”,这些报表就会运行。 在页面导航栏能看到所有报表的链接。 -->  
<reporting>  
    <!--true,则,网站不包括默认的报表。这包括“项目信息”菜单中的报表。 -->  
    <excludeDefaults />  
    <!--所有产生的报表存放到哪里。默认值是${project.build.directory}/site。 -->  
    <outputDirectory />  
    <!--使用的报表插件和他们的配置。 -->  
    <plugins>  
        <!--plugin元素包含描述报表插件需要的信息 -->  
        <plugin>  
            <!--报表插件在仓库里的group ID -->  
            <groupId />  
            <!--报表插件在仓库里的artifact ID -->  
            <artifactId />  
            <!--被使用的报表插件的版本(或版本范围) -->  
            <version />  
            <!--任何配置是否被传播到子项目 -->  
            <inherited />  
            <!--报表插件的配置 -->  
            <configuration />  
            <!--一组报表的多重规范,每个规范可能有不同的配置。一个规范(报表集)对应一个执行目标 。例如,有1,2,3,4,5,6,7,8,9个报表。1,2,5构成A报表集,对应一个执行目标。2,5,8构成B报表集,对应另一个执行目标 -->  
            <reportSets>  
                <!--表示报表的一个集合,以及产生该集合的配置 -->  
                <reportSet>  
                    <!--报表集合的唯一标识符,POM继承时用到 -->  
                    <id />  
                    <!--产生报表集合时,被使用的报表的配置 -->  
                    <configuration />  
                    <!--配置是否被继承到子POMs -->  
                    <inherited />  
                    <!--这个集合里使用到哪些报表 -->  
                    <reports />  
                </reportSet>  
            </reportSets>  
        </plugin>  
    </plugins>  
</reporting>  
<!--继承自该项目的所有子项目的默认依赖信息。这部分的依赖信息不会被立即解析,而是当子项目声明一个依赖(必须描述group ID和artifact   
    ID信息),如果group ID和artifact ID以外的一些信息没有描述,则通过group ID和artifact ID匹配到这里的依赖,并使用这里的依赖信息。 -->  
<dependencyManagement>  
    <dependencies>  
        <!--参见dependencies/dependency元素 -->  
        <dependency>......</dependency>  
    </dependencies>  
</dependencyManagement>  
<!--项目分发信息,在执行mvn deploy后表示要发布的位置。有了这些信息就可以把网站部署到远程服务器或者把构件部署到远程仓库。 -->  
<distributionManagement>  
    <!--部署项目产生的构件到远程仓库需要的信息 -->  
    <repository>  
        <!--是分配给快照一个唯一的版本号(由时间戳和构建流水号)?还是每次都使用相同的版本号?参见repositories/repository元素 -->  
        <uniqueVersion />  
        <id>xxx-maven2</id>  
        <name>xxx maven2</name>  
        <url>file://${basedir}/target/deploy</url>  
        <layout />  
    </repository>  
    <!--构件的快照部署到哪里?如果没有配置该元素,默认部署到repository元素配置的仓库,参见distributionManagement/repository元素 -->  
    <snapshotRepository>  
        <uniqueVersion />  
        <id>xxx-maven2</id>  
        <name>xxx-maven2 Snapshot Repository</name>  
        <url>scp://svn.xxxx.com/xxx:/usr/local/maven-snapshot</url>  
        <layout />  
    </snapshotRepository>  
    <!--部署项目的网站需要的信息 -->  
    <site>  
        <!--部署位置的唯一标识符,用来匹配站点和settings.xml文件里的配置 -->  
        <id>banseon-site</id>  
        <!--部署位置的名称 -->  
        <name>business api website</name>  
        <!--部署位置的URL,按protocol://hostname/path形式 -->  
        <url>  
            scp://svn.baidu.com/xxx:/var/www/localhost/web     
        </url>  
    </site>  
    <!--项目下载页面的URL。如果没有该元素,用户应该参考主页。使用该元素的原因是:帮助定位那些不在仓库里的构件(由于license限制)。 -->  
    <downloadUrl />  
    <!--如果构件有了新的group ID和artifact ID(构件移到了新的位置),这里列出构件的重定位信息。 -->  
    <relocation>  
        <!--构件新的group ID -->  
        <groupId />  
        <!--构件新的artifact ID -->  
        <artifactId />  
        <!--构件新的版本号 -->  
        <version />  
        <!--显示给用户的,关于移动的额外信息,例如原因。 -->  
        <message />  
    </relocation>  
    <!--给出该构件在远程仓库的状态。不得在本地项目中设置该元素,因为这是工具自动更新的。有效的值有:none(默认),converted(仓库管理员从Maven   
        1 POM转换过来),partner(直接从伙伴Maven 2仓库同步过来),deployed(从Maven 2实例部署),verified(被核实时正确的和最终的)。 -->  
    <status />  
</distributionManagement>  
<!--以值替代名称,Properties可以在整个POM中使用,也可以作为触发条件(见settings.xml配置文件里activation元素的说明)。格式是<name>value</name>。 -->  
<properties />  
  • 18
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值