分布式架構--第一篇--項目拆分(maven命令生成多模塊項目)


預覽生成的項目結構:

  ying-yue-parent  // 頂級總編譯控制模塊

  ying-yue-lib    // jar模塊

  ying-yue-model  // 模型對象模塊

  ying-yue-dao   // 持久化層模塊

  ying-yue-service  // 業務 層 模 塊

  ying-yue-web    // 控制 層 模 塊

 

包名:com.zjx.lollipop

1.准備工作 安裝jdk和maven

從apache官網下載maven https://www.apache.org/

解壓即安裝

1.1.配置環境變量

 

1.2.使用mvn -v查看是否安裝成功

2.使用命令生成上述結構的模塊化結構項目

說明

mvn archetype:generate  固定格式

  -DgroupId       組織標識(包名)

  -DartifactId       項目名稱

  -DarchetypeArtifactId  指定ArchetypeId,maven-archetype-quickstart,創建一個Java Project;maven-archetype-webapp,創建一個Web Project

  -DinteractiveMode    是否使用交互模式

2.1使用命令創建 ying-yue-parent 頂級模塊

mvn archetype:generate -DgroupId=com.zjx.lollipop -DartifactId=ying-yue-parent -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

 

進入生成的目錄將jar打包方式更改為pom方式如下圖:

下面繼續使用命令生成模塊, 下面的這些不需要更改打包方式默認即可, 開始:

2.2創建ying-yue-lib 模塊

mvn archetype:generate -DgroupId=com.zjx.lollipop -DartifactId=ying-yue-lib -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

 

2.3創建ying-yue-model模塊

mvn archetype:generate -DgroupId=com.zjx.lollipop -DartifactId=ying-yue-model -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

 

2.4創建ying-yue-dao模塊

mvn archetype:generate -DgroupId=com.zjx.lollipop -DartifactId=ying-yue-dao -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

 

2.5創建ying-yue-service模塊

mvn archetype:generate -DgroupId=com.zjx.lollipop -DartifactId=ying-yue-service -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

 

2.6創建ying-yue-web模塊

mvn archetype:generate -DgroupId=com.zjx.lollipop -DartifactId=ying-yue-web -DarchetypeArtifactId=maven-archetype-webapp -DinteractivMode=false

這一步需要手動輸入版本號默認為1.0-SNAPSHOT 我直接按回車確認(如下圖時)如果想自定義版本號在后面輸入然后Enter即可

是否使用com.zjx.lollipop這個包名 當然是Yes (輸入Y 回車)

回車后生成web模塊

執行完上圖所有命令后最終生成如下圖結構目錄:

3.導入Eclipse或MyEclipse

使用maven方式import導入后如下圖1, 圖2

圖1

圖2

3.1打開web模塊的pom.xml配置jetty插件

<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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.zjx.lollipop</groupId>
  <artifactId>ying-yue-web</artifactId>
  <packaging>war</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>ying-yue-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>
  </dependencies>
  <build>
    <finalName>ying-yue-web</finalName>
   <!--配置Jetty--> <plugins> <plugin> <groupId>org.mortbay.jetty</groupId> <artifactId>maven-jetty-plugin</artifactId> </plugin> </plugins>
<!--配置Jetty-->
</build> </project>

3.2選中ying-yue-parent后右鍵Run As輸入package命令進行打包

點擊ying-yue-web右鍵Run As輸入命令jetty:run后點擊run按鈕運行( 畫框的可以仔細看看, 發布后默認targe目錄可以將那個war拷到tomcat下運行)

3.3測試訪問 localhost:8080/ying-yue-web

可以的沒問題

 

4.我打算使用servlet+JDBC寫一個帶分頁的用戶增刪改查 來體現模塊間的調用與jar依賴管理, 開始:

jar的坐標不知道的可以到

 

中搜索;

4.1加入servlet和JDBC及其他依賴jar到ying-yue-lib的pom.xml中

需要用到的jar列表

commons-beanutils-x.x.jar

commons-logging-x.x.jar

commons-collections-x.x.jar

jstl.jar

mysql-connector-java-x.x.jar

standard.jar

可以看到當引入beanutils后其他兩個logging和collections自動引入這就是maven的好處

lib模塊配置后的pom.xml

<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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.zjx.lollipop</groupId>
  <artifactId>ying-yue-lib</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>ying-yue-lib</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>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.1.0</version>
    </dependency>
    <dependency>
      <groupId>commons-beanutils</groupId>
      <artifactId>commons-beanutils</artifactId>
      <version>1.9.2</version>
    </dependency>
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>6.0.2</version>
    </dependency>

4.2模塊間引用lib及模塊依賴調用

首先是dao引入lib和model

dao模塊配置后的pom.xml

<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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.zjx.lollipop</groupId>
  <artifactId>ying-yue-dao</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>ying-yue-dao</name>
  <url>http://maven.apache.org</url>
  <dependencies>
      <dependency>
      <groupId>com.zjx.lollipop</groupId>
        <artifactId>ying-yue-lib</artifactId>
      <version>1.0-SNAPSHOT</version>
    </dependency>
    <dependency>
      <groupId>com.zjx.lollipop</groupId>
        <artifactId>ying-yue-model</artifactId>
      <version>1.0-SNAPSHOT</version>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>
View Code

service模塊引入dao模塊

service模塊配置后的pom.xml

<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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.zjx.lollipop</groupId>
  <artifactId>ying-yue-service</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>ying-yue-service</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>com.zjx.lollipop</groupId>
        <artifactId>ying-yue-dao</artifactId>
      <version>1.0-SNAPSHOT</version>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>
View Code

web模塊引入service模塊

web模塊配置后的pom.xml

<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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.zjx.lollipop</groupId>
  <artifactId>ying-yue-web</artifactId>
  <packaging>war</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>ying-yue-web Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
      <dependency>
      <groupId>com.zjx.lollipop</groupId>
        <artifactId>ying-yue-service</artifactId>
      <version>1.0-SNAPSHOT</version>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <build>
    <finalName>ying-yue-web</finalName>
    <plugins>
        <plugin>
         <groupId>org.mortbay.jetty</groupId>   
         <artifactId>maven-jetty-plugin</artifactId>
        </plugin>
    </plugins>
  </build>
</project>
View Code

 

 

待續......

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM