【Maven进阶二】多模块构建Maven项目-Dos命令实现

   上篇我们讲述的是在Eclipse环境下如何实现多层Maven创建的效果,本篇我们来讲述通过Dos窗口,如何使用命令来实现对MavenParent的创建。

 

   比如,我创建的项目路径在我的F盘的某文件夹中(F:\JDB\test),那么首先第一步是进入到该文件

方法一:直接通过cd的方式访问

方法二:进入到该文件夹内,然后点击Shift+鼠标右键,右键菜单会出现“在此处打开命令窗口”然后点击则会进入相对应的命令窗口,如图:


   在命令窗口中输入如下命令"mvn archetype:generate -DgroupId=me.gacl -DartifactId=exam-parent -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

",然后回车,则会生成相对应的exam-parent,如下图:


   看我的文件夹,生成了exam-parent的父文件夹


   父文件夹生成,去掉无用的src文件,将pom文件夹中的<packaging></packaging>的值修改为pom,则exam-parent创建完成。

第二步开始创建分层项目,domain层,dao层,service层(exam-xx

domain层创建命令:mvn archetype:generate -DgroupId=me.gacl -DartifactId=exam-domain -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false


     创建完成之后,将pom.xml文件进行修改,将<groupId>me.gacl</groupId>, <version>1.0-SNAPSHOT</version>去掉

最后的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>me.gacl</groupId>
    <artifactId>exam-parent</artifactId>
    <version>1.0-SNAPSHOT</version>
  </parent>
  <artifactId>exam-domain</artifactId>
  <packaging>jar</packaging>
  <name>exam-domain</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

dao层创建命令:mvn archetype:generate -DgroupId=me.gacl -DartifactId=exam-dao -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false


     创建完成之后,将pom.xml文件进行修改,将<groupId>me.gacl</groupId>, <version>1.0-SNAPSHOT</version>去掉,同时加入对domain的依赖,最终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>me.gacl</groupId>
    <artifactId>exam-parent</artifactId>
    <version>1.0-SNAPSHOT</version>
  </parent>
  <artifactId>exam-dao</artifactId>
  <packaging>jar</packaging>
  <name>exam-dao</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
	
	<dependency>
		<groupId>me.gacl</groupId>
		<artifactId>exam-domain</artifactId>
		<version>${project.version}</version>
	</dependency>
  </dependencies>
</project>

service层创建命令:mvn archetype:generate -DgroupId=me.gacl -DartifactId=exam-service -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false


     创建完成之后,将pom.xml文件进行修改,将<groupId>me.gacl</groupId>, <version>1.0-SNAPSHOT</version>去掉,同时加入对dao层的依赖,最终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>me.gacl</groupId>
    <artifactId>exam-parent</artifactId>
    <version>1.0-SNAPSHOT</version>
  </parent>
  <artifactId>exam-service</artifactId>
  <packaging>jar</packaging>
  <name>exam-service</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
	<!-->
	exam-service依赖exam-dao,exam-domain但是由于exam-dao已经依赖于exam-domain
	所以我们只需要添加对exam-dao的依赖即可
	-->
	<dependency>
		<groupId>me.gacl</groupId>
		<artifactId>exam-dao</artifactId>
		<version>${project.version}</version>
	</dependency>
  </dependencies>
</project>

第三步则是对web窗体的创建-举例exam-web

   通过一种方式进入到exam-parent文件夹下的命令窗体内,然后输入命令“mvn archetype:generate -DgroupId=me.gacl -DartifactId=exam-web -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false”,出现的效果:


   子窗体exam-web不同于其他的层别,是因为此应该是启动的war包形式。maven-archetype-webapp,创建一个Web Project。maven-archetype-quickstart,创建一个Java Project;

   对于web层,相比其他层有其特殊之处,因为会存在jsp页面,web.xml来实现作用。创建完成之后,文件夹会出现一个index.jsp:


将其打开,会发现如下内容:

<html>
<body>
<h2>Hello World!</h2>
</body>
</html>

   修改exam-web文件夹,将pom文件夹中的配置修改:将<groupId>me.gacl</groupId>,  <version>1.0-SNAPSHOT</version>去掉.去掉的原因是因为前两者会通继承exam-parent中的groupId,version.最后加上对于service的依赖。修改之后的pom文件如下:

修改之后的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>me.gacl</groupId>
    <artifactId>exam-parent</artifactId>
    <version>1.0-SNAPSHOT</version>
  </parent>
  <artifactId>exam-web</artifactId>
  <packaging>war</packaging>
  <name>exam-web Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
	<!--
	添加对exam-service的依赖
	-->
	<dependency>
		<groupId>me.gacl</groupId>
		<artifactId>exam-service</artifactId>
		<version>${project.version}</version>
	</dependency>
  </dependencies>
  <build>
    <finalName>exam-web</finalName>
  </build>
</project>

     这样一个exam-web子模块就创建完工了,对于Web层来说,我们可以进行测试来测试咱们搭建的框架

最后一步,对exam-web进行测试

     对于测试,由于最终是运行的web层,所以我们需要在pom文件,加入Jetty的支持,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>me.gacl</groupId>
    <artifactId>exam-parent</artifactId>
    <version>1.0-SNAPSHOT</version>
  </parent>
  <artifactId>exam-web</artifactId>
  <packaging>war</packaging>
  <name>exam-web Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
	<!--
	添加对exam-service的依赖
	-->
	<dependency>
		<groupId>me.gacl</groupId>
		<artifactId>exam-service</artifactId>
		<version>${project.version}</version>
	</dependency>
  </dependencies>
  <build>
    <finalName>exam-web</finalName>
	<plugins>
	<!--配置Jetty插件 -->
		<plugin>
			<groupId>org.mortbay.jetty</groupId>
			<artifactId>maven-jetty-plugin</artifactId>
		</plugin>
	</plugins>
  </build>
</project>
一切准备就绪,exam-parent文件下执行dos命令,mvn clean install

最后运行成功的效果:


运行成功之后,在exam-web目录下多出了target目录,里边存在exam-web.war,如图所示:


最后一步命令,在exam-web目录的dos窗口下,执行jetty操作:mvnjetty:run


运行成功之后,会提示StartedJetty Server


这时候你在浏览器中直接输入exam-web的地址,则会看到Hello World字样,运行成功。


到此为止,整个框架搭建加测试就算完工了,最后就可以应用到应用环境中,比如eclipse直接导入即可。

posted on 2016-02-19 13:50  huohuoL  阅读(167)  评论(0编辑  收藏  举报

导航