项目管理中的maven (2)

来源:互联网 发布:淘宝淘部落是什么 编辑:程序博客网 时间:2024/05/18 01:32

1 用maven进行多项目的管理

多项目管理是maven的主要特色之一,对于一个大型工程,用maven来管理他们之间复杂的依赖关系,是再好不过了。maven的项目配置之间的关系有两种:继承关系和引用关系。 

maven默认根据目录结构来设定pom的继承关系,即下级目录的pom默认继承上级目录的pom。要设定两者之间的关系很简单,上级pom如下设置: 
<modules> 
    <module>ABCCommon</module> 
    <module>ABCCore</module> 
    <module>ABCTools</module> 
</modules> 
要记住的是,这里的module是目录名,不是子工程的artifactId。子工程如下设置: 
<parent> 
    <groupId>com.abc.product1</groupId> 
    <artifactId>abc-product1</artifactId> 
    <version>1.0.0-SNAPSHOT</version> 
</parent> 
<artifactId>abc-my-module2</artifactId> 
<packaging>jar</packaging> 
这样两者就相互关联起来了,继承关系就设定完毕,所有父工程的配置内容都会自动在子工程中生效,除非子工程有相同的配置覆盖。如果你不喜欢层层递进的目录结构来实现继承,也可以在parent中加入<relativePath>../a-parent/pom.xml</relativePath> 来制定parent项目的相对目录。继承关系通常用在项目共同特性的抽取上,通过抽取公共特性,可以大幅度减少子项目的配置工作量。 


在项目中我们使用一个主项目进行管理,在其中配置pom.xml用于引入相关的jar包等的,可以说是一些公共的,可以用于多个项目的关联,网上看到说是一种引用的方式。下面说下:

mvnproj:主项目中的pom.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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>


  <groupId>com.efn</groupId>
  <artifactId>mvnproj2</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>pom</packaging>   <!-- pom方式-->


  <name>mvnproj2</name>
  <url>http://maven.apache.org</url>


  <!-- =============================dependencies================================== -->
  <dependencies>
    <!-- junit的包导入 -->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    <!-- jdbc的依赖关�?-->
    <dependency>
    <groupId>jdbc</groupId>
    <artifactId>jdbc</artifactId>
    <version>2.0</version>
    </dependency>


    <dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>${log4j-version}</version>
    <scope>compile</scope>
    </dependency>
  </dependencies>
  
   <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <log4j-version>1.2.13</log4j-version>
  </properties>

  

 <!--项目应的子项目-->

   <modules>
    <module>mvnproj2_kernel</module>
    <module>mvnproj2_web</module>
  </modules>

</project>


mvnproj2_kernel:pom.xml:

..........................

  <parent>
    <artifactId>mvnproj2</artifactId>
    <groupId>com.efn</groupId>
    <version>1.0-SNAPSHOT</version>
  </parent>

..............................



mvnproj2_web:

  <parent>
    <artifactId>mvnproj2</artifactId>
    <groupId>com.efn</groupId>
    <version>1.0-SNAPSHOT</version>
  </parent>

    <!-- 依赖kernel工程 -->
<dependency>
<groupId>com.efn</groupId>
<artifactId>mvnproj2_kernel</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>


如上的就已经配置好了相应的应用,继承关系。当然我们在eclipse中打开pom.xml文件选择Overview视图可以直接在上面进行操作,例如在Mudules中选择增加的图标进行子项目的添加建立操作,在该过程中我们可以选择进行普通java的mvn项目的建立或者是web java的建立等,都可以进行选择。

选择好后就会生成相应的项目,当然相应的pom.xml文件都会生成好,主项目中的引用都会在子项目中体现。










原创粉丝点击