使用命令行快速创建Maven多模块项目

标签: 命令行 maven 模块 | 发表时间:2015-11-24 12:51 | 作者:
出处:http://www.iteye.com

使用命令行快速创建Maven多模块项目

 

1.创建父模块

mvn archetype:generate -DgroupId=name.isgodonto -DartifactId=auth-all -Dversion=1.0.0-SNAPSHOT -Dpackage=name.isgodonto -DarchetypeArtifactId=maven-archetype-site-simple   -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeVersion=1.1 -DinteractiveMode=false

  

2.创建子模块

cd auth-all
mvn archetype:generate -DgroupId=name.isgodonto -DartifactId=auth-dal -Dversion=1.0.0-SNAPSHOT -Dpackage=name.isgodonto -DarchetypeArtifactId=maven-archetype-quickstart  -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeVersion=1.1 -DinteractiveMode=false

mvn archetype:generate -DgroupId=name.isgodonto -DartifactId=auth-biz -Dversion=1.0.0-SNAPSHOT -Dpackage=name.isgodonto -DarchetypeArtifactId=maven-archetype-quickstart  -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeVersion=1.1 -DinteractiveMode=false

mvn archetype:generate -DgroupId=name.isgodonto -DartifactId=auth-web -Dversion=1.0.0-SNAPSHOT -Dpackage=name.isgodonto -DarchetypeArtifactId=maven-archetype-webapp  -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeVersion=1.1 -DinteractiveMode=false

 3.目录结构:

auth-all:父(聚合)模块

auth-dal:数据访问模块

auth-biz:业务模块,依赖于auth-dal

auth-web:web模块,依赖于auth-biz

 

4.pom文件调整如下:

1)auth-all的pom.xml

<?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>name.isgodonto</groupId>
  <artifactId>auth-all</artifactId>
  <version>1.0.0-SNAPSHOT</version>
  <packaging>pom</packaging>

  <properties>
  	<auth.version>1.0.0-SNAPSHOT</auth.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <jetty.version>8.1.13.v20130916</jetty.version>
  </properties>
  
  <modules>
    <module>auth-dal</module>
    <module>auth-biz</module>
    <module>auth-web</module>
  </modules>
  
  <dependencyManagement>
  	<dependencies>
  		<!-- ================================================= -->
        <!-- 模块间依赖   -->
        <!-- ================================================= -->
  		<dependency>
  			<groupId>name.isgodonto</groupId>
  			 <artifactId>auth-dal</artifactId>
  			 <version>${auth.version}</version>
  		</dependency>
  		<dependency>
  			<groupId>name.isgodonto</groupId>
  			 <artifactId>auth-biz</artifactId>
  			 <version>${auth.version}</version>
  		</dependency>
  		<dependency>
  			<groupId>name.isgodonto</groupId>
  			 <artifactId>auth-web</artifactId>
  			 <version>${auth.version}</version>
  		</dependency>
  	</dependencies>
  </dependencyManagement>
  
  <build>
  	<pluginManagement>
  		<plugins>
  			<plugin>
  				<groupId>org.mortbay.jetty</groupId>
               	<artifactId>jetty-maven-plugin</artifactId>
               <version>${jetty.version}</version>
  			</plugin>
  		</plugins>
  	</pluginManagement>
  </build>
  
</project>

 

 2)all-dal的pom.xml:

<?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>name.isgodonto</groupId>
    <artifactId>auth-all</artifactId>
    <version>1.0.0-SNAPSHOT</version>
  </parent>
  
  <artifactId>auth-dal</artifactId>
  <name>auth-dal</name>
</project>

 

 3)admin-biz的pom.xml:

<?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>name.isgodonto</groupId>
		<artifactId>auth-all</artifactId>
		<version>1.0.0-SNAPSHOT</version>
	</parent>

	<artifactId>auth-biz</artifactId>
	<name>auth-biz</name>

	<dependencies>
		<dependency>
			<groupId>name.isgodonto</groupId>
			<artifactId>auth-dal</artifactId>
		</dependency>
	</dependencies>
</project>

 

4)auth-web的pom.xml:

<?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>name.isgodonto</groupId>
		<artifactId>auth-all</artifactId>
		<version>1.0.0-SNAPSHOT</version>
	</parent>

	<artifactId>auth-web</artifactId>
	<packaging>war</packaging>

	<dependencies>
		<dependency>
			<groupId>name.isgodonto</groupId>
			<artifactId>auth-biz</artifactId>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
			<version>3.1.0</version>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.mortbay.jetty</groupId>
				<artifactId>jetty-maven-plugin</artifactId>
				<configuration>
					<webApp>
						<contextPath>/</contextPath>
					</webApp>
					<scanIntervalSeconds>5</scanIntervalSeconds>
					<stopKey>myapp</stopKey>
					<stopKey>9999</stopKey>
					<connectors>
						<connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
							<port>80</port>
							<maxIdleTime>60000</maxIdleTime>
						</connector>
					</connectors>
					<requestLog implementation="org.eclipse.jetty.server.NCSARequestLog">
						<filename>target/access.log</filename>
						<retainDays>90</retainDays>
						<append>false</append>
						<extended>false</extended>
						<logTimeZone>GMT+8:00</logTimeZone>
					</requestLog>
				</configuration>
			</plugin>
		</plugins>
		<finalName>auth-web</finalName>
	</build>
</project>

 

 

  5.运行项目:

在auth-all下执行以下命令安装包到本地仓库:

mvn clean install -pl auth-web am

 在auth-web下执行以下命令启动jetty容器:

mvn jetty:run

 在浏览器输入http://localhost,看到"Hello World!"就成功了!

 

 



已有 1 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [命令行 maven 模块] 推荐:

使用命令行快速创建Maven多模块项目

- - ITeye博客
使用命令行快速创建Maven多模块项目. auth-all:父(聚合)模块. auth-dal:数据访问模块. auth-biz:业务模块,依赖于auth-dal. auth-web:web模块,依赖于auth-biz. 1)auth-all的pom.xml. .  2)all-dal的pom.xml:.

Maven最佳实践:划分模块

- - 企业架构 - ITeye博客
“分天下为三十六郡,郡置守,尉,监” —— 《史记·秦始皇本纪》. 所有用Maven管理的真实的项目都应该是分模块的,每个模块都对应着一个pom.xml. 它们之间通过继承和聚合(也称作多模块,multi- module)相互关联. 我们明明在开发一个项目,划分模块后,导入Eclipse变成了N个项目,这会带来复杂度,给开发带来 不便.

简单的Maven模块结构

- - 研发管理 - ITeye博客
简单的Maven模块结构是这样的:. 上述简单示意图中,有一个父项目(app-parent)聚合很多子项目(app-util, app-dao, app-service, app-web). 每个项目,不管是父子,都含有一个pom.xml文件. 而且要注意的是,小括号中标出了每个项目的打包类型. 父项目是pom,也只能是pom.

Maven构建简单的多模块项目

- - 编程语言 - ITeye博客
一般web项目会进行分模块开发. 这里简单分为domain(领域层)、persist(持久层)、service(业务层)、web(交互控制层). 1、创建simple-parent,用来给各个子模块继承. 1)进入命令行,输入以下命令:. 可以看到在当前目录生成了simple-parent目录,里面有一个src目录和一个pom.xml文件.

maven学习之maven与eclipse集成

- - ITeye博客
    在上一篇博文中讲到了maven的配置,今天要讲maven与eclipse的集成. 现在在java开发中,eclipse占据了绝大部分的市场份额. 其他的关于NetBeans,IDEA中的关于maven的配置,读者可参阅相关资料. (注:关于IDEA,据说是款非常强大的集成开发环境,但是据说对svn的支持不是很好,道听途说而已).

maven工程下整合spring+mybatis+freemarker

- - CSDN博客架构设计推荐文章
博客地址:http://zhengyinhui.com/?p=142. 由于工作主要是前端开发,做后端的项目比较少,最近自己做个项目,发觉好多的都忘了,这里写篇博客整理下maven工程下整合spring+mybatis+freemarker相关内容. 新建个Archetype为maven-archetype-webapp的maven项目(安装maven插件:http://download.eclipse.org/technology/m2e/releases),在pom文件添加相关依赖:.

从Maven仓库中导出jar包

- - 企业架构 - ITeye博客
从Maven仓库中导出jar包:进入工程pom.xml 所在的目录下,. 输入以下命令:mvn dependency:copy-dependencies -DoutputDirectory=lib. 更简单的  mvn dependency:copy-dependencies    会导出到target\dependency 下面.

Maven 3 入门 -- 核心概念

- - 开源软件 - ITeye博客
例如上篇helloworld的pom.xml配置文件中的. 其实就是坐标,那么Maven的坐标元素包括groupId、artifactId、version、packaging、classifier. 当一个项目通过依赖,插件或者父项目引用与另外一个项目关联的时候,Maven通过坐标来精确定位一个项目.

maven导出项目依赖的jar包

- - 互联网 - ITeye博客
在进行项目部署时,需要将maven项目所依赖的jar导出到指定目录,本文讲解如何导出项目依赖的jar包. 一、导出到默认目录 targed/dependency .     从Maven项目中导出项目依赖的jar包:进入工程pom.xml 所在的目录下,执行如下命令:.        或在eclipse中,选择项目的pom.xml文件,点击右键菜单中的Run As,见下图红框中,在弹出的Configuration窗口中,输入  dependency:copy-dependencies 后,点击运行.

Maven使用archetype生成项目

- -
Archtype指项目的骨架, Maven中的 maven-archetype-plugin插件使用户可以方便的生成所需的项目骨架.. ###1.命令行调用maven插件. 如果不加任何参数,命令窗口显示的会有上千中项目骨架可够选择,我们可以使用 -DarchetypeCatalog, -Dfilter选择过滤项目骨架,参数赋值的格式跟JAVA设置系统属性一样 -D=.