Maven分布式项目构建详解
来源:互联网 发布:听音识谱软件手机 编辑:程序博客网 时间:2024/06/05 03:26
首先看一张图:
画这张图的时候,我其实有过纠结的地方:demo-util究竟是放在parent上面好,还是和parent没关系,直接在demo-model,demo-persist,demo-serivce,demo-web直接依赖demo-util好?最后还是考虑到用前者,直接方便,不需要每一层都依赖demo-util(我把这个工具类最后改名字为common-utils),画虚线的demo-webUtils可能是可有可无,项目如果没有分这么细的话就不需要了。
那么如何创建parent项目,以及在parent中如何创建依赖的子项目呢,这么创建项目有什么好处吗?
a.创建父项目
Maven
---------Check out Maven Projects from SCM
---------Maven Module
---------Maven Project
以上是在Maven项目中会看到的项目选项,选择Maven Project,截图如下所示:
b.创建子项目:
Maven
---------Check out Maven Projects from SCM
---------Maven Module
---------Maven Project
以上是在Maven项目中会看到的项目选项,选择Maven Module,截图如下所示:
OK,创建成功后就可以在parent项目中看到下面的子项目和一个pom.xml配置文件。这么依赖的好处就是:通过parent父项目的管理,可以直接在parent项目中进行clearn,package,install,则其他子项目也都进行相应的clearn,package,install,做到一次执行,所有的项目都进行清理,不遗留一个子模块。
接下来详细说说各个pom文件的内容:
照着原理图,我在本机上面创建了common-utils,demo-parent,demo-model,demo-service,demo-web这个四个5个maven项目。
common-utils的pom文件:
<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>com.lgy</groupId> <artifactId>common-utils</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>common-utils</name> <url>http://maven.apache.org</url> <!-- 规范版本--> <properties> <junit-version>4.10</junit-version> </properties> <!-- 依赖的jar包 --> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>${junit-version}</version> <scope>test</scope> </dependency> </dependencies></project>*common-utils是单独的一个maven项目,里面若需要一些jar包,得自己加入依赖。
demo-parent的pom配置文件:
<?xml version="1.0" encoding="UTF-8"?><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>com.lgy</groupId> <artifactId>demo-parent</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>pom</packaging> <modules> <module>demo-model</module> <module>demo-service</module> <module>demo-web</module> </modules> <!-- 规范版本--> <properties><maven-jetty-plugin-version>6.1.22</maven-jetty-plugin-version><junit-version>4.10</junit-version><mysql-version>5.1.14</mysql-version><common-util-version>0.0.1-SNAPSHOT</common-util-version><project.build.sourceEncoding-format>UTF-8</project.build.sourceEncoding-format> </properties> <!-- 定义common的jar包--> <dependencies> <dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>${mysql-version}</version> </dependency> <dependency> <groupId>${project.groupId}</groupId> <artifactId>common-utils</artifactId><version>${common-util-version}</version> </dependency> </dependencies></project>*parent的pom配置文件主要是规范版本号和定义公用的jar包的这么一个配置文件,同时也规范了groupId,version。在后面继承了parent的maven项目就会自动继承这些东西,所以不需要依赖jar,或者groupId,version。
demo-model的pom配置文件:
<?xml version="1.0"?><project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>com.lgy</groupId> <artifactId>demo-parent</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> <artifactId>demo-model</artifactId> <name>demo-model</name> <url>http://maven.apache.org</url> <dependencies> </dependencies></project>*只需要写artifactId,其他的和parent中的相同。
demo-service的pom配置文件:
<?xml version="1.0"?><project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>com.lgy</groupId> <artifactId>demo-parent</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> <artifactId>demo-service</artifactId> <name>demo-service</name> <url>http://maven.apache.org</url> <dependencies><dependency><groupId>${project.groupId}</groupId><artifactId>demo-model</artifactId><version>${project.version}</version></dependency> </dependencies></project>*service项目此时依赖model,${project.groupId}是本项目的proupId,${project.version}是本项目中的version号。
demo-web的pom配置文件:
<?xml version="1.0"?><projectxsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><modelVersion>4.0.0</modelVersion><parent><groupId>com.lgy</groupId><artifactId>demo-parent</artifactId><version>0.0.1-SNAPSHOT</version></parent><artifactId>demo-web</artifactId><packaging>war</packaging><name>demo-web Maven Webapp</name><url>http://maven.apache.org</url><dependencies><dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>2.4</version><scope>provided</scope></dependency><dependency><groupId>javax.servlet.jsp</groupId><artifactId>jsp-api</artifactId><version>2.0</version><scope>provided</scope></dependency><dependency><groupId>${project.groupId}</groupId><artifactId>demo-service</artifactId><version>${project.version}</version></dependency></dependencies><build><finalName>demo-web</finalName><pluginManagement><plugins> <plugin> <groupId>org.mortbay.jetty</groupId> <artifactId>maven-jetty-plugin</artifactId> <version>${maven-jetty-plugin-version}</version> <configuration> <scanIntervalSeconds>10</scanIntervalSeconds> <useTestClasspath>true</useTestClasspath> <webAppConfig> <contextPath>/demo-web</contextPath> </webAppConfig> <connectors> <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector"> <port>8080</port> </connector> </connectors> </configuration> </plugin> </plugins></pluginManagement></build></project>
到此结束!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- Maven分布式项目构建详解
- Maven构建SpringMVC项目详解
- maven详解-eclipse和maven构建项目
- maven下构建项目结构详解
- maven下构建项目结构详解
- maven下构建项目结构详解
- myeclipse使用maven构建struts2项目详解
- Eclipse使用Maven构建web项目详解
- Eclipse使用Maven构建web项目详解
- Maven构建项目的标准目录详解
- maven构建hibernate项目及其详解
- 【Maven】maven 项目构建
- JAVA Eclipse使用Maven构建web项目详解(SSM框架)
- maven应用详解 及构建ssh项目(四)
- maven实战(一)简单mvn构建项目详解
- [maven]构建maven web项目
- maven构建项目(maven命令)
- Maven-----构建Maven源码项目
- 公式的上下标在MathType中该如何对齐
- NYOJ 1057 寻找最大数(三)
- 欢迎使用CSDN-markdown编辑器
- 指针函数和函数指针区别
- Linux设置和查看环境变量的方法
- Maven分布式项目构建详解
- 解决System进程PID 4 占用80端口的问题
- 黑马程序员——java基础——集合框架(二)
- JAVA学习(八):JAVA文件编程
- UE4 Textures
- response.sendRedirect()与request.getRequestDispatcher().forward(request,response)这两个对象
- 几种数据库的拙见
- 多字节字符集下CString转char*
- 所谓的位置问题