pom配置

1.pom文件的信息

          modelVersion:

          指当前pom模型的版本,对于Maven3来说,只能是4.0.0


2. 本项目基本信息

          groupId:

         全球唯一标识符,通常使用全限定的包名区分该项目和其他项目。并且构建时生成的路径也是由此产生,如com.mycompany.app生成的相对路径为:/com/mycompany/app

         artifactId:

         构建标识符,它和groupId一起唯一标识一个构件。也就是说,groupId和artifactId的组合绝对不能重复

         packaging:

         项目产生的构件类型,如jar、war、ear、pom等

         version:

         项目当前版本

         name:

         当前项目名称


3.pom关系

          主要分为依赖、继承、合成

        (1)依赖关系

<dependencies>  
    <dependency>  
      <groupId>junit<groupId>  
      <artifactId>junit<artifactId>  
      <version>4.0<version>  
      <type>jar<type>  
      <scope>test<scope>  
      <optional>true<optional>  

    <dependency>  
     ...  
<dependencies> 
                  groupId、artifactId、version:描述了依赖的唯一标识

                 type:表示依赖的构件的类型,如jar、war,默认为jar

                 scope:用以限制相应的依赖范围,包括以下几种

                          compile:默认范围,用于所有阶段,会随着项目一起发布

                         provided:类似于compile,但是期望jdk、容器或使用者来提供这个依赖。如servlet.jar

                         runtime:只在运行时使用,如jdbc驱动,适用运行和测试阶段

                         test:只在测试时使用,不会随项目发布

                         system:类似于provided,需要显示提供依赖的jar,maven不会再repository中查找它

                  systemPath:仅用于范围为system,提供相应的路径

                  optional:标注可选,当项目自身也是依赖时使用。用于连续依赖时使用


<dependency>
    <groupId>com.alibaba.intl.sourcing.shared</groupId>
    <artifactId>commons.framework</artifactId>
    <type>jar</type>
    <exclusions>
         <exclusion>
            <groupId>commons-codec</groupId>
            <artifactId>commons-codec</artifactId>
         </exclusion>
     </exclusions>
</dependency>
                  用来排除我们不想要的依赖


        (2)继承关系

                  定义父项目:

<project>  
  <modelVersion>4.0.0<modelVersion>  
  <groupId>org.codehaus.mojo<groupId>  
  <artifactId>my-parent<artifactId>  
  <version>2.0<version>  
  <packaging>pom<packaging>  
<project>  
                 将packaging定义为pom
                  通常还会定义dependencyManagement,用来配置共同的依赖关系。主要配置依赖包的版本、scope等


                  子项目中:

          parent:

          父项目的坐标,也就是说这个项目中如果没有规定某个元素的值,那么父项目中对应的值即为这个项目的默认值。

         <parent>
             //groupId、artifactId、wersion制定了父项目
             <groupId>com.alibaba.intl.app</groupId>
             <artifactId>alibaba.intl.s2s.parent</artifactId>
             <version>1.0-SNAPSHOT</version>
             //父项目pom.xml文件的相对路径,默认是../pom.xml。maven查找父项目pom的顺序为:当前路径->relativePath->本地仓库->远程仓库
             <relativePath><relativePath>
        </parent>


        (3)合成关系(或多个模块)

                  先看一下主模块app-parent的pom.xml

<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/maven-v4_0_0.xsd">  
    <modelVersion>4.0.0</modelVersion>  
    <groupId>org.myorg.myapp</groupId>  
    <artifactId>app-parent</artifactId>  
    <packaging>pom</packaging>  
    <version>1.0-SNAPSHOT</version>  
    <modules>  
        <module>app-util</module>  
        <module>app-dao</module>  
        <module>app-service</module>  
        <module>app-web</module>  
    </modules>  
</project>  
              这里的packing必须为pom。该配置重要的地方在于modules,在maven对app-parent进行build的时候,他会根据子模块的相互依赖关系整理一个build顺序,然后依次build
           

              再看一下子模块的配置:

<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/maven-v4_0_0.xsd">
	<parent>
		<artifactId>app-parent</artifactId>
		<groupId>org.myorg.myapp</groupId>
		<version>1.0-SNAPSHOT</version>
	</parent>
	<modelVersion>4.0.0</modelVersion>
	<artifactId>app-util</artifactId>
	<dependencies>
		<dependency>
			<groupId>commons-lang</groupId>
			<artifactId>commons-lang</artifactId>
			<version>2.4</version>
		</dependency>
	</dependencies>
</project>
                 使用parent标签继承了app-parent即可

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值