文档章节

Maven 实战 05 聚合与继承

fokYaland
 fokYaland
发布于 2015/06/04 17:27
字数 401
阅读 25
收藏 0
聚合:一条命令构建多个模块
 <project>
        <modelVersion>4.0.0</modelVersion>        
        <groupId>com.jubenxu.mvnbook.account</groupId>
        <artifactId>account-aggregator</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <!-- packaging为POM类型 -->
          <packaging>pom</packaging>
        <name>Account Aggregator</name>
          <modules>
            <!-- 每个module的值都是一个当前POM的相对目录 -->
            <module>../account-email</module>
            <module>../account-persist</module>
            <!-- 将父模块加入到聚合中 -->
            <module>../account-parent</module>
          </modules>

    </project>

继承:简化配置
父模块
    <project>
        <modelVersion>4.0.0</modelVersion>

        <groupId>com.juvenxu.mvnbook.account</groupId>
        <artifactId>account-parent</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <!-- packaging为POM类型 -->
        <packaging>pom</packaging>

        <name>account-parent</name>

        <properties>
            <springframework.version>2.5.6</springframework.version>
            <junit.version>4.10</junit.version>
        </properties>
        <!-- 依赖管理 不会引入任何依赖 -->
        < dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-core</artifactId>
                    <version>${springframework.version}</version>
                </dependency>
                <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-beans</artifactId>
                    <version>${springframework.version}</version>
                </dependency>
                <dependency>
                    <groupId>junit</groupId>
                    <artifactId>junit</artifactId>
                    <version>${junit.version}</version>
                </dependency>
            </dependencies>
        </dependencyManagement>

        <build>
            <!-- 插件管理 不会引入插件 -->
            < pluginManagement>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-source-plugin</artifactId>
                        <version>2.1.1</version>
                        <executions>
                            <execution>
                                <id>attach-sources</id>
                                <phase>package</phase>
                                <goals>
                                    <goal>jar-no-fork</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-compiler-plugin</artifactId>
                        <version>2.3.2</version>
                        <configuration>
                            <source>1.5</source>
                            <target>1.5</target>
                        </configuration>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-resources-plugin</artifactId>
                        <version>2.5</version>
                        <configuration>
                            <encoding>UTF-8</encoding>
                        </configuration>
                    </plugin>
                </plugins>
            </pluginManagement>
        </build>
    </project>

 子模块
    <project>
        <modelVersion>4.0.0</modelVersion>
          <!-- 指定父模块 -->
         <parent>
            <groupId>com.juvenxu.mvnbook.account</groupId>
            <artifactId>account-parent</artifactId>
            <version>0.0.1-SNAPSHOT</version>
              <!-- 父模块POM的相对路径 -->
              <relativePath>../account-parent/pom.xml</relativePath>
         </parent>

        <artifactId>account-email</artifactId>
        <name>account-email</name>

        <properties>
            <project.build.sourceEncoding>
                UTF-8
            </project.build.sourceEncoding>
        </properties>

        <dependencies>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
            </dependency>
        </dependencies>

        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-source-plugin</artifactId>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-resources-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
    </project>

     <parent>的子元素的<relativePath>表示父模块POM的相对路径

默认情况,在聚会POM处运行 mvn clean install 会构建所有模块,有时只想构建某几个模块可以:
mvn clean install -pl ../account-email


本文转载自:http://blog.csdn.net/yanliang1/article/details/12112103

fokYaland
粉丝 4
博文 68
码字总数 3062
作品 0
东城
私信 提问
你分得清楚Maven的聚合和继承吗?

用了 Maven 好几年了,许多人还是只懂得简单的依赖坐标。对于 Maven 的聚合和继承还是一知半解,甚至很多人以为是同一个东西。但其实聚合是用于快速构建项目,是表示项目与子项目之间的关系。...

陈树义
02/11
0
0
maven学习和使用

maven整理 maven整理从以下内容整理: maven中的聚合 继承 依赖范围 1.maven中的聚合 一次构建多个项目。每个项目又包含多个模块。比如:我们的项目分为:支付项目、商城项目和系统项目。而每...

zzuqiang
2016/06/24
25
0
Maven项目管理工具参考知识

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhaobryant/article/details/73609047 本笔记主要记录关于Maven知识体系的一些Pages和Tips! 一、Maven入门手...

adoryn
2017/06/22
0
0
Maven实战

《Maven实战》是国内首本公开出版的Maven专著。 它内容新颖,基于新发布的Maven 3.0,不仅详尽讲解了 Maven 3.0的所有新功能和新特性,而且还将这些新功能和新特性与Maven 2.0版本进行了对比...

ddddd8
2018/01/08
0
0
(一)Maven详解之聚合与继承

说到聚合与继承我们都很熟悉,maven同样也具备这样的设计原则,下面我们来看一下Maven的pom如何进行聚合与继承的配置实现。 一、为什么要聚合? 随着技术的飞速发展和各类用户对软件的要求越...

飓风2000
2015/02/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Qt编写数据可视化大屏界面电子看板9-曲线效果

一、前言 为了编写数据可视化大屏界面电子看板系统,为了能够兼容Qt4和嵌入式linux系统,尤其是那种主频很低的,但是老板又需要在这种硬件上(比如树莓派、香橙派、全志H3、imx6)展示这么华...

飞扬青云
10分钟前
0
0
责任链模式

//这篇博客的博主真的不错,解析的都很清晰明了, https://blog.csdn.net/jason0539/article/details/45091639

南桥北木
36分钟前
3
0
Flutter -------- dio网络请求

dio是Flutter中文网开源的一个强大的Dart Http请求库,支持Restful API、FormData、拦截器、请求取消、Cookie管理、文件上传/下载、超时等... 1.添加依赖# dependencies: dio: 2.1.x #...

切切歆语
46分钟前
1
0
PHP的学习

PHP变量的命名必须以$符开始,如: $i;$j;$name; $符后面的第一个字符不可以是数字,只能是字母或者下划线(_)。 除了下划线(_)之外,变量中不能出现任何特殊字符,也就是变量只能包含...

墨冥
今天
3
0
一篇文章彻底搞懂Java虚拟机

概念: 虚拟机:指以软件的方式模拟具有完整硬件系统功能、运行在一个完全隔离环境中的完整计算机系统 ,是物理机的软件实现。常用的虚拟机有VMWare,Visual Box,Java Virtual Machine(Jav...

骚年锦时
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部