maven父子项目的依赖,可以通过maven对项目进行分层。
父项目:
<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>hw.hlatform.secg</groupId> <artifactId>secg-parent</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>pom</packaging>//告诉父模块,什么包也不用生成 <modules>//父页面所包含的子项目 <module>../secg-core</module> <module>../secg-utils</module> <module>../secg-service</module> <module>../secg-pubilcinc</module> <module>../secg-webservice</module> <module>../secg-web</module> <module>../IHos-Api</module> </modules> <url>http://maven.apache.org</url> <properties>//编译的时候所用的编码 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <distributionManagement> <snapshotRepository>//每次发布都会在服务器上留下新的版本 <id>user-snapshots</id> <name>User Project SNAPSHOTS</name> <url>http://192.168.0.199:8081/nexus/content/repositories/MyUserReposSnapshots/</url> </snapshotRepository> <repository>//jar所在的仓库,优先到这里寻找,如果没有则取网上下载 <id>user-releases</id> <name>User Project Release</name> <url>http://192.168.0.199:8081/nexus/content/repositories/MyUserReposRelease/</url> </repository> </distributionManagement> <dependencyManagement> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.10</version> <scope>test</scope> </dependency> <dependency>//子项目打成的jar,所有子项目用的公共jar全部可以打包到这里 <groupId>${project.groupId}</groupId> <artifactId>secg-core</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>${project.groupId}</groupId> <artifactId>secg-utils</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.16</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.18</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.6.4</version> </dependency> <dependency> <groupId>javassist</groupId> <artifactId>javassist</artifactId> <version>3.12.1.GA</version> </dependency> <dependency> <groupId>org.ow2.orchestra.eclipse.birt</groupId> <artifactId>org.ow2.orchestra.eclipse.birt.chart.engine</artifactId> <version>3.7.0</version> </dependency> <dependency> <groupId>maven</groupId> <artifactId>maven-abbot-plugin</artifactId> <version>1.1</version> </dependency> <dependency> <groupId>mockobjects</groupId> <artifactId>alt-jdk1.3</artifactId> <version>0.07</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>3.1.1.RELEASE</version> </dependency> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.1.1</version> </dependency> <!-- http://mvnrepository.com/artifact/org.springframework/spring-context --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>3.2.1.RELEASE</version> </dependency> <!-- http://mvnrepository.com/artifact/org.hibernate/hibernate-core --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>4.2.1.Final</version> </dependency> <!-- http://mvnrepository.com/artifact/org.springframework/spring-orm --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> <version>3.2.1.RELEASE</version> </dependency> <!-- http://mvnrepository.com/artifact/org.springframework/spring-oxm --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-oxm</artifactId> <version>3.2.1.RELEASE</version> </dependency> <!-- http://mvnrepository.com/artifact/org.springframework/spring-test --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>3.2.1.RELEASE</version> </dependency> <!-- http://mvnrepository.com/artifact/javax.servlet/javax.servlet-api --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency> </dependencies> </dependencyManagement> <build> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId>//打源码包 <version>2.1.2</version> <executions> <execution> <phase>package</phase> <goals> <goal>jar-no-fork</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-rar-plugin</artifactId>//打rar包 <version>2.2</version> <executions> <execution> <phase>package</phase> <goals> <goal>rar</goal> </goals> </execution> </executions> </plugin> </plugins> </pluginManagement> </build> </project>
子项目:
<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> <parent>//指明所引用的父项目 <groupId>hw.hlatform.secg</groupId> <artifactId>secg-parent</artifactId> <version>0.0.1-SNAPSHOT</version> <relativePath>../secg-parent/pom.xml</relativePath>//指明父项目的pom.xml文件 </parent> <artifactId>secg-core</artifactId> <packaging>jar</packaging> <name>secg-core</name> <url>http://maven.apache.org</url> <dependencies> <dependency>//父类所引用的jar,版本号与父类保持一致 <groupId>junit</groupId> <artifactId>junit</artifactId> </dependency> <!-- http://mvnrepository.com/artifact/org.springframework/spring-context --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> </dependency> <!-- http://mvnrepository.com/artifact/org.hibernate/hibernate-core --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> </dependency> <!-- http://mvnrepository.com/artifact/org.springframework/spring-orm --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> </dependency> <dependency> <groupId>hw.hlatform.secg</groupId> <artifactId>secg-utils</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId>//打源码包 </plugin> </plugins> </build> </project>
相关推荐
1. 使用 `mvn install` 命令,Maven 会先构建父项目,然后构建所有子项目。 2. 通过 `-pl` 参数指定要构建的子模块,如 `mvn install -pl child1,child2`。 六、注意事项 1. 确保父项目的坐标在子项目中正确引用,...
设置Group ID和Artifact ID,与父项目保持一致,但Artifact ID应反映出子项目的角色,如service-module和服务模块,web-module和Web前端模块。同时,添加父项目的引用,使子项目继承父项目的依赖管理。 ```xml ...
2. **继承**:通过`<parent>`标签,子项目可以声明其父项目,从而继承父项目的配置,如版本号、依赖、插件等。这样可以保持项目的统一性和一致性,减少重复的配置。 **三、插件管理** 在Maven中,插件用于扩展...
9. **Maven的多模块项目**:对于大型项目,Maven支持多模块结构,一个父POM管理多个子模块,每个子模块有自己的`pom.xml`,这样可以更好地组织和管理代码。 10. **Spring Boot与Maven**:虽然`mavenDemo`没有明确...
Maven的继承机制允许子项目继承父项目的配置。这包括依赖管理、插件配置等,进一步减少了重复的配置代码。父POM只需要定义一次,所有子模块都能自动应用。 5. **生命周期集成**: Maven的生命周期包括清理、编译...
首先,创建一个父项目,然后在父项目的pom.xml中添加子模块的定义,最后在父项目目录下为每个子模块生成对应的目录结构和基本的pom.xml。 4. 依赖管理: 在父pom.xml中,通过标签可以定义所有子模块共有的依赖及其...
- 继承:一个父POM可以定义一组共有的配置,子项目通过继承父POM来共享这些配置。使用`<parent>`元素指定父POM。 - 聚合:一个项目可以通过`<modules>`元素聚合多个子项目,使得操作多个项目变得简单,如一次性...
对于大型项目,Maven支持多模块组织,一个父POM管理多个子模块,子模块各自有自己的POM,通过`modules`元素列出。 十、Maven的命令行使用 Maven提供了丰富的命令行选项,如`mvn help:effective-pom`显示最终生效的...
在本项目中,"创建Maven模块项目.docx"文档很可能是指导如何初始化Maven多模块项目,包括定义父POM和子模块POM,以及配置各个模块的依赖。而"打包web项目.docx"则可能详细介绍了如何使用Maven的war插件进行项目打包...
当一个大型项目被拆分成多个子项目时,Maven的多模块项目(Multi-Module Project)概念就显得尤为重要。在这样的结构中,顶级`pom.xml`称为聚合 pom,它不包含代码,而是作为父项目管理所有子模块。每个子模块都有...
一个Maven多模块项目通常包含一个父项目(parent project)和若干子项目(module)。父项目主要负责定义共有的构建配置,如版本号、依赖管理和插件管理,而子项目则各自独立完成特定的功能。例如,在`test-parent`这...
- 父POM可以定义共用的配置,子项目通过继承父POM,可以减少重复的配置。 - 使用`<parent>`标签指定父POM的坐标。 ### Maven的多模块项目 - 大型项目往往由多个子模块组成,Maven可以通过设置模块(modules)来...
5. **项目继承和聚合**:Maven支持项目继承和聚合,这意味着一个父POM可以定义共享的配置,子项目继承后可以使用这些配置。聚合则允许将多个独立的项目组合成一个大的项目,便于统一管理和构建。 ** Maven的使用...
项目结构是父项目-子模块的结构进行组织。整个项目以pom型项目进行组织,其模块可以是jar项目,也可以是war项目,也可以pom项目。合理的使用maven-module项目,可以是项目结构分明,同时提高了代码的复用性。本文以...
子模块继承父模块的POM,可以共享一些公共的依赖和配置。 6. **环境配置**:Maven可以通过`settings.xml`文件进行全局配置,如本地仓库路径、远程仓库地址等。这使得开发者可以在不同环境中使用相同的POM,但仍然...
2. **子项目POM文件**:每个子项目的独立配置,继承自父POM,并添加自身特定的依赖和配置。 3. **SSM配置文件**:包括Spring的bean配置、Spring MVC的控制器配置以及MyBatis的mapper和SqlSession配置。 4. **源代码...
首先,Maven多模块项目是将一个大型项目划分为多个相互依赖的子项目,每个子项目负责特定的功能模块,这样可以提高开发效率,便于代码维护和团队协作。创建多模块项目的第一步是设置一个父项目(Parent Project),...
2. **版本控制**:在版本控制系统(如Git)中,父项目和子项目作为单独的仓库进行管理,方便协同开发。 3. **持续集成**:与持续集成工具(如Jenkins)集成,可自动化构建、测试和部署整个项目。 总结来说,"maven...
在Maven中,多模块项目是由一个父模块(Parent Module)和若干子模块(Child Modules)组成。父模块主要负责定义公共的依赖版本和插件配置,而子模块则各自负责具体的功能实现。通过`<modules>`标签,父模块可以声明...