1ï¼é¦å å建ä¸ä¸ªç¶ç±»å·¥ç¨ å模å继æ¿ç¶ç±»å·¥ç¨ 并å¨ç¶ç±»å·¥ç¨çpom.xmlæ件ä¸å®ä¹å¼å ¥çjaråå ¶çæ¬å· å模åå¯ä»¥å¼ç¨
2 å建apiå模åï¼ä¸»è¦æ¾ç½®SDK
3 å建server å模å 主è¦åæ¾é ç½®æ件 ä¸å æ¬æºä»£ç
å建工ç¨å®æ
å建æ¯æeclipseçå¤æ¨¡åmaven项ç®
éè¿mavenå¯ä»¥å建å¤ä¸ªå ³è模åç项ç®ï¼Multiple Module Projectsï¼ãç±ä¸ä¸ªæ»ç模åï¼ä¸é¢å å«å¤ä¸ªå模åï¼å模åè¿å¯ä»¥å å«å模åï¼ãè¿ç§mavenåè½è½æ¯æ大åç项ç®æ建ï¼å¾å¾å¤§å项ç®ç±å¾å¤å模åç»æã
以ä¸è¯´æå¨eclipseä¸å¦ä½å建å¤æ¨¡åçmaven项ç®ã
å建æ»çPOM
mvn archetype:create -DgroupId=com.easymorse.marshal -DartifactId=multi-modules-demo
å建ä¸ä¸ªmaven项ç®ï¼ç¶åä¿®æ¹è¯¥é¡¹ç®çpom.xmlæ件ï¼packageç±»åæ¹ä¸ºpomï¼
<packaging>pom</packaging>
并ä¸å é¤srcç®å½ã
å建å模å
å¨æ»æ¨¡åç®å½ä¸ï¼å建å模åï¼æ¯å¦web-demoï¼
mvn archetype:create -DgroupId=com.easymorse.marshal -DartifactId=web-demo
åå建ä¸ä¸ªæ¯å¦æ¥å¿æ¨¡åï¼
mvn archetype:create -DgroupId=com.easymorse.marshal -DartifactId=logging-demo
å¨æ»pomçpom.xmlæ件ä¸å·²ç»èªå¨å å ¥ï¼
<modules>
<module>web-demo</module>
<module>logging-demo</module>
</modules>
å¨åå模åçpom.xmlæ件ä¸ä¹èªå¨å å
¥äºï¼
<parent>
<artifactId>multi-modules-demo</artifactId>
<groupId>com.easymorse.marshal</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
å模å继æ¿äºæ»POMçpackageï¼è¿ééè¦ä¿®æ¹ï¼web-demo模åè¦ç为ï¼
<packaging>war</packaging>
logging-demo模åä¿®æ¹ä¸º
<packaging>jar</packaging>
对ä¸çº§æ¨¡åçç¹å«è®¾ç½®
éè¦å¨ä¸çº§æ¨¡åä¸è®¾ç½®javaç¼è¯çåæ°ï¼ç°å¨eclipseä¸è¬é½ä½¿ç¨æ¯è¾æ°ççæ¬ï¼é»è®¤jdkæ¯1.6ï¼èmavené»è®¤è¿æ¯1.4ã
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
对webå模åçç¹å«è®¾ç½®
webå模åï¼web-demoï¼ä¾èµå®çæ¥å¿æ¨¡ålogging-demoã设置pom.xmlï¼
<dependency>
<groupId>com.easymorse.marshal</groupId>
<artifactId>logging-demo</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
webå模åå¨çæeclipse项ç®æ¶ï¼éè¦wtpæ¯æï¼éè¦è®¾ç½®eclipseæ件ï¼
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<configuration>
<wtpmanifest>true</wtpmanifest>
<wtpapplicationxml>true</wtpapplicationxml>
<wtpversion>2.0</wtpversion>
</configuration>
</plugin>
</plugins>
</build>
çæEclipse项ç®
å¨multi-modules-demo项ç®æ ¹ç®å½ä¸ï¼
mvn eclipse:eclipse
ç¶åï¼éè¿eclipseçimport项ç®å¯¼å ¥ï¼å¯åç°ä¸¤ä¸ªé¡¹ç®ï¼
logging-demo
web-demo
é½å¯¼å ¥è¿æ¥ãå¯¼å ¥å¯è½ä¼åºç°é误ï¼ä¸»è¦æ¯å 为没æ设置mavenç类路å¾åéâM2_REPOâï¼å¯ä»¥è®¾ç½®è¿ä¸ªç±»åéå°mavençæ¬å°repositoryéè·¯å³å¯ã
å¦æè¦å¨eclipseä¸ä½¿ç¨m2eclipseï¼éè¦ä½¿ç¨ï¼
mvn eclipse:m2eclipse
è¿æ ·å°±ä¸éè¦è®¾ç½®M2_REPOç±»åºåéäºã
æ¥ä¸æ¥å¯ä»¥ï¼
éè¿eclipseé ç½®çtomcatè¿è¡web-demoï¼
éè¿mavençtomcatæè jettyæ件è¿è¡web-demoï¼éè¦é ç½®pom.xmlæ件ï¼ï¼
为项ç®æå 便äºåååé¨ç½²ã