Maven学习(五)使用Maven构建多模块项目

使用Maven构建多模块项目

通常的web项目构成:html

创建解决方案目录parent

首先使用命令进入到咱们须要创建maven项目的目录:java

mvn archetype:generate -DgroupId=com.lsk.mavenProject -DartifactId=parent -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

在 D:\java\test\下出现parent,进入,将src文件夹删除,而后修改pom.xml文件:将<packaging>jar</packaging>修改成<packaging>pom</packaging>,pom表示它是一个被继承的模块。web

若是命令一直停留在:[INFO] Generating project in Batch mode,请参考:maven(二)apache

建立domain、dao、service层

进入到新建立的parent,建立domian模块:浏览器

建立成功后,修改domain目录中的pom.xml文件,把<groupId>com.lsk.maven</groupId><version>1.0-SNAPSHOT</version>去掉,加上<packaging>jar</packaging>,由于groupId和version会继承system-parent中的groupId和version,packaging设置打包方式为jar:app

<?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.lsk.maven</groupId>
    <artifactId>parent</artifactId>
    <version>1.0-SNAPSHOT</version>
  </parent>
  <artifactId>domain</artifactId>
  <packaging>jar</packaging>
  <name>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模块,方法和上面同样:dom

建立好后,修改dao目录中的pom.xml文件,修改和domain的同样的方式,不过,须要添加对system-domain模块的依赖,修改后的内容以下:webapp

<?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.lsk.maven</groupId>
    <artifactId>parent</artifactId>
    <version>1.0-SNAPSHOT</version>
  </parent>
  <artifactId>dao</artifactId>
  <packaging>jar</packaging>
  <name>dao</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <!--dao须要使用到domain中的类,因此须要添加对domain模块的依赖-->
    <dependency>
      <groupId>com.lsk.maven</groupId>
      <artifactId>domain</artifactId>
      <version>${project.version}</version>
    </dependency>

    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>  
</project>

建立service:maven

建立方式和pom.xml修改方式,和上面的同样,不过注意,此次要添加对dao模块的引用,那咱们还要不要添加对domain模块的引用呢?不须要,由于虽然service依赖dao和domain,由于dao已经依赖了system-domain,咱们只添加对dao的引用就能够啦。post

建立web

建立web,命令和上面的模块的建立方法不太同样:

 

mvn archetype:generate -DgroupId=com.lsk.maven -DartifactId=web -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false

 修改web下的pom.xml文件,并添加对service的引用,和上面的修改方式同样,可是,注意,web项目的打包方式是war!!!!

 项目层级结果及运行

如今看parent下的pom.xml

 

如何运行呢?最后运行的确定是web,咱们能够给他装个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>com.lsk.maven</groupId>
    <artifactId>parent</artifactId>
    <version>1.0-SNAPSHOT</version>
  </parent>
  <artifactId>web</artifactId>
  <packaging>war</packaging>
  <name>web Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>com.lsk.maven</groupId>
      <artifactId>service</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <build>
    <finalName>web</finalName>
    <plugins>
        <!--配置Jetty插件-->
        <plugin>
            <groupId>org.mortbay.jetty</groupId>
            <artifactId>maven-jetty-plugin</artifactId>
        </plugin>
    </plugins>
  </build>
</project>

咱们执行:mvn clean install命令:

 

 进入web目录,启动jetty:

mvn jetty:run

浏览器访问:

可使用Ctrl+c中止jetty。

 导入到Eclipse

相关文章
相关标签/搜索