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

相關文章
相關標籤/搜索