預覽生成的項目結構:
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>
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>
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>
待續......