在开发环境中,有时需要专人负责专门的模块,其他模块不需接触,这就需要将项目拆分,如下

    

fund_demo项目具有三个模块,现将主业务core模块单独提出另建一个项目fund_core,拆分时需要注意相关类的路径在映射文件中要保持正确

    

这就需要当运行fund_demo时也要调用fund_core项目,开发情况下可将fund_core项目作为依赖加入fund_demo,但打包时却不方便,这就需要用到maven来管理

1. 同一工作空间下新建父项目fund_parent,并编辑pom.xml

    <groupId>cn.zang</groupId>
<artifactId>fund_parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<!-- 打包方式为pom -->
<packaging>pom</packaging> <!-- 引入子项目 -->
<modules>
<module>../fund_core</module>
<module>../fund_demo</module>
</modules>

2. 编辑子项目的pom.xml

fund_demo:声明父元素,引入fund_core的依赖

<!--声明父元素-->
<parent>
<groupId>cn.zang</groupId>
<artifactId>fund_parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>../fund_parent</relativePath>
</parent> <groupId>cn.zang</groupId>
<artifactId>fund_demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging> <name>fund</name>
<url>http://maven.apache.org</url> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties> <dependencies>
<!--引入fund_core的依赖-->
<dependency>
<groupId>cn.zang</groupId>
<artifactId>fund_core</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
······
</dependencies>

fund_core:声明父元素

<!--声明父元素-->
<parent>
<groupId>cn.zang</groupId>
<artifactId>fund_parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>../fund_parent</relativePath>
</parent> <groupId>cn.zang</groupId>
<artifactId>fund_core</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

3. fund_parent项目编译发布

call mvn clean compile
call mvn eclipse:clean
call mvn eclipse:eclipse -Dwtpversion=2.0 -DdownloadSources=true -DdownloadJavadocs=true
pause

4. 在项目中引入父项目时即可自动将两个子项目引入

使用maven拆分项目的更多相关文章

  1. Maven 通过maven对项目进行拆分、聚合(重点)

    对现在已有maven ssh项目进行拆分,拆分思路:将dao层的代码已经配置文件全体提取出来到一个表现上独立的工程中.同样service.action拆分. ssh-parent: 父工程 ssh-d ...

  2. IntelliJ IDEA使用(一):创建maven web项目

    在公司用eclipse开发maven web项目后,慢慢开始明白大家的那句话"受不了eclipse".的确,在开发大型的web项目,尤其是maven构建的项目,eclipse很不友 ...

  3. maven发布项目到私服-snapshot快照库和release发布库的区别和作用及maven常用命令

    maven发布项目到私服-snapshot快照库和release发布库的区别和作用及maven常用命令 在日常的工作中由于各种原因,会出现这样一种情况,某些项目并没有打包至mvnrepository. ...

  4. eclipse 创建maven web项目

    参考:http://www.cnblogs.com/hongwz/p/5456616.html eclipse 创建maven web项目

  5. 在Intellij IDEA 下通过Maven新建项目的一些体会

    因为习惯的原因,一直在用jetbrain的IDE,最近的在开发javaEE项目,并尝试用maven来管理依赖,那这中间又出了什么让我不得不写下来的呢 一.先来看看在IDEA下怎么用maven建项目 1 ...

  6. 利用Maven把项目生成jar包供其他项目使用

    每当搭建框架时,第一步就是为系统整理一个接一个的jar包.用多了就开始深思,如何把自己的项目也整成jar包,供他人使用呢? 近期一直在看徐晓斌所著:<Maven实战>.因自己学识不够,只是 ...

  7. Mybatis与Spring整合,使用了maven管理项目,作为初学者觉得不错,转载下来

    转载自:http://www.cnblogs.com/xdp-gacl/p/4271627.html 一.搭建开发环境 1.1.使用Maven创建Web项目 执行如下命令: mvn archetype ...

  8. myeclipse下构建maven web项目

    首先创建一个Maven的Project如下图 我们勾选上Create a simple project (不使用骨架) 这里的Packing 选择 war的形式 由于packing是war包,那么下面 ...

  9. Eclipse 搭建 Maven Web项目

    第一步:安装JDK: 第二步:安装Eclipse: 第三步:安装tomcat7: 第四步:安装maven插件: 4.1 下载maven:http://maven.apache.org/download ...

随机推荐

  1. python开发_calendar

    如果你用过linux,你可能知道在linux下面的有一个强大的calendar功能,即日历 在python中,同样也有这样的一个强大的calendar 下面是我做的demo: #python中的cal ...

  2. Tasker文件夹说明

    ################导入类#################路径 类型 后缀名 /tasker/profiles/ 配置 .prf.xml /tasker/projects/ 项目 .pr ...

  3. Two-transistor circuit replaces IC

    Linear Technology's recently introduced LTC4300 chip buffers I2C clock and data lines to and from a ...

  4. Netty Channel 接口名词理解

    1.Channel channel 是负责数据读,写的对象,有点类似于老的io里面的stream.它和stream的区别,channel是双向的,既可以write 也可以read,而stream要分o ...

  5. [翻译] Canvas 不用写代码的动画

    Canvas 不用写代码的动画 https://github.com/CanvasPod/Canvas Canvas is a project to simplify iOS development ...

  6. 《Android传感器高级编程》

    <Android传感器高级编程> 基本信息 原书名:Professional Android Sensor Programming 原出版社: Wrox 作者: (美)米内特(Greg M ...

  7. linux如何后台运行进程,而且不随终端关闭而关闭

    参考:http://www.cnblogs.com/kaituorensheng/p/3980334.html 使用命令nohup:no hang up,表示关闭终端后,进程并不随着终端关闭而关闭 f ...

  8. 【Hibernate步步为营】--hql查询小介

    HQL 是指Hibernate Query Language,它是Hibernate的查询语言,拥有一套自己的查询机制,它的查询语句和SQL非常类似.在使用的时候可以非常快上手.HQL提供了基本上SQ ...

  9. Spark Streaming中空batches处理的两种方法(转)

    原文链接:Spark Streaming中空batches处理的两种方法 Spark Streaming是近实时(near real time)的小批处理系统.对给定的时间间隔(interval),S ...

  10. Heap Spray原理

    Heap Spray定义基本描述 Heap Spray并没有一个官方的正式定义,毕竟这是漏洞攻击技术的一部分.但是我们可以根据它的特点自己来简单总结一下.Heap Spray是在shellcode的前 ...