`
747017186
  • 浏览: 331579 次
社区版块
存档分类
最新评论

maven父项目与子项目

阅读更多

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>

 

分享到:
评论

相关推荐

    使用Maven建立父子项目

    1. 使用 `mvn install` 命令,Maven 会先构建父项目,然后构建所有子项目。 2. 通过 `-pl` 参数指定要构建的子模块,如 `mvn install -pl child1,child2`。 六、注意事项 1. 确保父项目的坐标在子项目中正确引用,...

    maven多模块项目构建过程

    设置Group ID和Artifact ID,与父项目保持一致,但Artifact ID应反映出子项目的角色,如service-module和服务模块,web-module和Web前端模块。同时,添加父项目的引用,使子项目继承父项目的依赖管理。 ```xml ...

    maven聚合项目

    2. **继承**:通过`&lt;parent&gt;`标签,子项目可以声明其父项目,从而继承父项目的配置,如版本号、依赖、插件等。这样可以保持项目的统一性和一致性,减少重复的配置。 **三、插件管理** 在Maven中,插件用于扩展...

    maven web项目 Demo

    9. **Maven的多模块项目**:对于大型项目,Maven支持多模块结构,一个父POM管理多个子模块,每个子模块有自己的`pom.xml`,这样可以更好地组织和管理代码。 10. **Spring Boot与Maven**:虽然`mavenDemo`没有明确...

    maven聚合项目模板

    Maven的继承机制允许子项目继承父项目的配置。这包括依赖管理、插件配置等,进一步减少了重复的配置代码。父POM只需要定义一次,所有子模块都能自动应用。 5. **生命周期集成**: Maven的生命周期包括清理、编译...

    使用Maven构建多模块项目

    首先,创建一个父项目,然后在父项目的pom.xml中添加子模块的定义,最后在父项目目录下为每个子模块生成对应的目录结构和基本的pom.xml。 4. 依赖管理: 在父pom.xml中,通过标签可以定义所有子模块共有的依赖及其...

    maven构建项目可以粘贴的内容

    - 继承:一个父POM可以定义一组共有的配置,子项目通过继承父POM来共享这些配置。使用`&lt;parent&gt;`元素指定父POM。 - 聚合:一个项目可以通过`&lt;modules&gt;`元素聚合多个子项目,使得操作多个项目变得简单,如一次性...

    新建maven项目基础

    对于大型项目,Maven支持多模块组织,一个父POM管理多个子模块,子模块各自有自己的POM,通过`modules`元素列出。 十、Maven的命令行使用 Maven提供了丰富的命令行选项,如`mvn help:effective-pom`显示最终生效的...

    Maven模块项目。整合spring+springmvc+mybatis

    在本项目中,"创建Maven模块项目.docx"文档很可能是指导如何初始化Maven多模块项目,包括定义父POM和子模块POM,以及配置各个模块的依赖。而"打包web项目.docx"则可能详细介绍了如何使用Maven的war插件进行项目打包...

    Maven 多项目依赖关系

    当一个大型项目被拆分成多个子项目时,Maven的多模块项目(Multi-Module Project)概念就显得尤为重要。在这样的结构中,顶级`pom.xml`称为聚合 pom,它不包含代码,而是作为父项目管理所有子模块。每个子模块都有...

    使用maven管理多模块项目并启动调试-实例代码

    一个Maven多模块项目通常包含一个父项目(parent project)和若干子项目(module)。父项目主要负责定义共有的构建配置,如版本号、依赖管理和插件管理,而子项目则各自独立完成特定的功能。例如,在`test-parent`这...

    maven项目构建入门书籍

    - 父POM可以定义共用的配置,子项目通过继承父POM,可以减少重复的配置。 - 使用`&lt;parent&gt;`标签指定父POM的坐标。 ### Maven的多模块项目 - 大型项目往往由多个子模块组成,Maven可以通过设置模块(modules)来...

    Maven项目管理软件

    5. **项目继承和聚合**:Maven支持项目继承和聚合,这意味着一个父POM可以定义共享的配置,子项目继承后可以使用这些配置。聚合则允许将多个独立的项目组合成一个大的项目,便于统一管理和构建。 ** Maven的使用...

    maven-module多模块依赖项目在eclipse中搭建与开发

    项目结构是父项目-子模块的结构进行组织。整个项目以pom型项目进行组织,其模块可以是jar项目,也可以是war项目,也可以pom项目。合理的使用maven-module项目,可以是项目结构分明,同时提高了代码的复用性。本文以...

    maven管理的web项目

    子模块继承父模块的POM,可以共享一些公共的依赖和配置。 6. **环境配置**:Maven可以通过`settings.xml`文件进行全局配置,如本地仓库路径、远程仓库地址等。这使得开发者可以在不同环境中使用相同的POM,但仍然...

    基于maven的多项目演示

    2. **子项目POM文件**:每个子项目的独立配置,继承自父POM,并添加自身特定的依赖和配置。 3. **SSM配置文件**:包括Spring的bean配置、Spring MVC的控制器配置以及MyBatis的mapper和SqlSession配置。 4. **源代码...

    maven构建多模块项目

    首先,Maven多模块项目是将一个大型项目划分为多个相互依赖的子项目,每个子项目负责特定的功能模块,这样可以提高开发效率,便于代码维护和团队协作。创建多模块项目的第一步是设置一个父项目(Parent Project),...

    maven多模块空项目

    2. **版本控制**:在版本控制系统(如Git)中,父项目和子项目作为单独的仓库进行管理,方便协同开发。 3. **持续集成**:与持续集成工具(如Jenkins)集成,可自动化构建、测试和部署整个项目。 总结来说,"maven...

    maven多模块项目(简单实例)

    在Maven中,多模块项目是由一个父模块(Parent Module)和若干子模块(Child Modules)组成。父模块主要负责定义公共的依赖版本和插件配置,而子模块则各自负责具体的功能实现。通过`&lt;modules&gt;`标签,父模块可以声明...

Global site tag (gtag.js) - Google Analytics