为方便管理Maven中的模块,Maven提供了聚合与继承来管理
来源:互联网 发布:全炫茂 知乎 编辑:程序博客网 时间:2024/06/05 08:54
Maven中提供的聚合是,为方便对各个模块进行管理,一次性编译打包
具体操作
在MyEclipse中新建一个Maven项目,在创建的时候我们将红色标记出来的一定选中
点击Next
Maven中的聚合使用
当Maven聚合要之后,我们只要在user-parent执行Maven的命令就会全部执行 如
接下来谈谈Maven中的继承,继承解决了每个模块中的jar包的依赖以及包的冲突,
我们只需要将买个共同使用的jar包全部放在user-parent中的pom.xml 通过 <dependencyManagement></dependencyManagement>来进行依赖管理
具体如下
<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>org.ksea.user</groupId>
<artifactId>user-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<!--
用于导入模块
这里的路径是相对路径user-core、user-log、user-service、user-parent
四个包是同级关系,通过modules 我们就完成了Maven中的聚合关系,那么只需要执行
user-parent 其他都会进行同样操作
-->
<modules>
<module>../user-core</module>
<module>../user-log</module>
<module>../user-service</module>
</modules>
<!-- 公用的全部写在这里 -->
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<!-- 通过这样的方式来进行依赖的管理 蓝色部分就是通过这样来进行依赖-->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.1.10.Final</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.37</version>
</dependency>
<dependency>
<groupId>dbunit</groupId>
<artifactId>dbunit</artifactId>
<version>2.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>org.easymock</groupId>
<artifactId>easymock</artifactId>
<version>3.4</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>user-core</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>user-log</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<build/>
</project>
-----------在user-core中 的依赖就是如下 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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.ksea.user</groupId>
<artifactId>user-core</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<!--
user-core 就通过parent标签来进行继承user-parent的pom.xml
而user-core中的所有<dependency></dependency>就都不用写version
那么所依赖的jar包的版本都在user-parent进行说明这样就不会发生包冲突
-->
<parent>
<groupId>org.ksea.user</groupId>
<artifactId>user-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>../user-parent/pom.xml</relativePath>
</parent>
<name>user-core</name>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>dbunit</groupId>
<artifactId>dbunit</artifactId>
</dependency>
</dependencies>
</project>
---------------------------------------user-log继承中的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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.ksea.user</groupId>
<artifactId>user-log</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<!--
user-log 就通过parent标签来进行继承user-parent的pom.xml
而user-log中的所有<dependency></dependency>就都不用写version
那么所依赖的jar包的版本都在user-parent进行说明这样就不会发生包冲突
-->
<parent>
<groupId>org.ksea.user</groupId>
<artifactId>user-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>../user-parent/pom.xml</relativePath>
</parent>
<name>user-log</name>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</dependency>
</dependencies>
</project>
--------------------------------------user-service------的继承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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.ksea.user</groupId>
<artifactId>user-service</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<!--
user-service 就通过parent标签来进行继承user-parent的pom.xml
而user-service中的所有<dependency></dependency>就都不用写version
那么所依赖的jar包的版本都在user-parent进行说明这样就不会发生包冲突
-->
<parent>
<groupId>org.ksea.user</groupId>
<artifactId>user-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>../user-parent/pom.xml</relativePath>
</parent>
<name>user-service</name>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>user-core</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>user-log</artifactId>
</dependency>
<dependency>
<groupId>org.easymock</groupId>
<artifactId>easymock</artifactId>
</dependency>
</dependencies>
</project>
- 为方便管理Maven中的模块,Maven提供了聚合与继承来管理
- Maven模块聚合与继承
- eclipse中的maven管理之聚合与继承和版本的简单管理(三)
- maven中的聚合与继承
- Maven 中的继承与聚合
- Maven聚合模块与继承和Maven的生命周期
- Maven聚合模块与继承和Maven的生命周期配置
- Maven聚合与继承
- Maven聚合与继承
- Maven聚合与继承
- Maven聚合与继承
- Maven聚合与继承
- Maven 聚合与继承
- Maven聚合与继承
- maven聚合与继承
- Maven聚合与继承
- Maven聚合与继承
- Maven聚合与继承
- 应用中的「确定」按钮应该在左边还是右边?
- bzoj1059[ZJOI2007]矩阵游戏
- java clone和深度复制和浅复制的个人总结
- mysql操作脚本总结
- 关于socket网络编程,各种报错若干总结
- 为方便管理Maven中的模块,Maven提供了聚合与继承来管理
- 同步与Java内存模型
- 共享DLL 和静态库DLL
- Java中时间相关函数Date、Calendar、SimpleDateFormat
- 两数交换
- 基于3D卷积神经网络的人体行为理解(论文笔记)
- UVa live 3905 扫描线
- UVA1586 Molar Mess
- POJ-3077