我用的是myeclipse6.5和Maven3.0.3,與其他版本的有點出入,其實所謂的出入基本算大同小異。
下載Maven3.0.3到本地,解壓后配置Maven環境變量,在用戶變量中新建變量名:maven_home,變量值:C:\Program Files\apache-maven-3.0.3(根據自己機器上解壓后的maven所在的位置而定);而后在path變量的變量值最后面加上"%maven_home%\bin;"。設置好測試Maven是否安裝成功,CMD,在命令窗口中輸入:mvn -version;如果出現如下界面說明maven安裝成功
接下來修改maven的本地倉庫(maven很根據你的配置從遠程下載jar到本地,這里的倉庫就是存放這些下載過來的jar,同時也是maven使用jar的一個倉庫),找到%maven_home%\conf目錄,修改下面的settings.xml內容
開始時這段代碼是被注釋的,且有一個默認的路徑,去掉注釋,注如果你不想用這個默認的路徑就改成自己的路徑,這里的d:\jar\maven_jar;便是我的路徑。改好之后保存
接下來在Myeclipse中配置maven,首先myeclipse得裝好maven插件,可以通過在線裝maven,eclipse的各個版本裝Maven插件的方法都有些小不同,根據自己版本去網上找一下裝maven插件的方法。裝好maven插件后,在myeclipse的window-》preferences窗口的左側能看到有個maven的選項,如下圖:
我們需要添加一個外部的maven,也就是自己機器上安裝的那個maven,點擊installations,選擇右邊的ADD按鈕,選擇自己機器安裝好的maven,如下圖
接着點擊User Settings,設置user settings,選擇%maven_home%\conf\settings.xml;設置local repository為本地倉庫,即在settings.xml所設置的路徑:如下圖
設置好這一步后,在window-->preferences-->java-->build path-->classpath variables找到M2_REPO,edit,編輯path為你的本地倉庫(如果已經是本地倉庫了就不要編輯了)
至此,eclipse+maven的開發環境已經全部搭建好了,開始可以建立項目開發了。
新建項目,選擇maven project
選擇default workspace location
選擇webapp
如此一個maven項目便建立好了
下面按照我們平時的開發習慣把項目來重構一下,上圖中結構中只有src/main/resources,我們還需要建立幾個source folder。右鍵-->new-->source folder,建立一個src/main/java的source folder來存放我的java文件,建立一個test來存放測試類。
建立好之后在java buildpath里面設置source(就是class文件輸出的位置),依次選擇output folder,雙擊后在對話框中輸入target/classess
接着來配置tomcat,我們使用tomcat-maven-plugin這個插件內嵌到我們項目中。(我只說配置方法,至於理論譬如什么是maven、tomcat-maven-plugin以及pom.xml的作用介於篇幅而且網上很多這類的文章我就不復述了)
找到項目當中的pom.xml,打開編輯這個文件,以下是我另外一個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 <A href="http://maven.apache.org/maven-v4_0_0.xsd%22>%09<modelVersion>4.0.0</modelVersion>%09<groupId>lyvee.maven.example</groupId>%09<artifactId>lyvee.maven.example</artifactId>%09">http://maven.apache.org/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <groupId>lyvee.maven.example</groupId>
- <artifactId>lyvee.maven.example</artifactId>
- <SPAN style="TEXT-DECORATION: underline"><SPAN style="COLOR: #0000ff"> <!-- 把項目打成war包形式發布-->
- </SPAN></SPAN></A> <packaging>war</packaging>
- <version>0.0.1-SNAPSHOT</version>
- <name>lyvee.maven.example Maven Webapp</name>
- <url>http://maven.apache.org</url>
- <!--
- 在POM 4中,<dependency>中還引入了<scope>,它主要管理依賴的部署。目前<scope>可以使用5個值:
- * compile,缺省值,適用於所有階段,會隨着項目一起發布。
- * provided,類似compile,期望JDK、容器或使用者會提供這個依賴。如servlet.jar。
- * runtime,只在運行時使用,如JDBC驅動,適用運行和測試階段。
- * test,只在測試時使用,用於編譯和運行測試代碼。不會隨項目發布。
- * system,類似provided,需要顯式提供包含依賴的jar,Maven不會在Repository中查找它。
- -->
- <pluginRepositories>
- </pluginRepositories>
- <dependencies>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>3.8.1</version>
- <scope>test</scope>
- </dependency>
- </dependencies>
- <build>
- <finalName>lyvee.maven.example</finalName><!--項目名字-->
- <plugins>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>tomcat-maven-plugin</artifactId><!--tomcat插件-->
- <version>1.1</version>
- <executions>
- <execution>
- <id>tomcat-deploy</id>
- <phase>deploy</phase>
- <goals>
- <goal>deploy</goal>
- </goals>
- </execution>
- </executions>
- <configuration>
- <path>/</path><!--訪問路徑-->
- <port>8090</port><!--端口號-->
- <warSourceDirectory>src/main/webapp</warSourceDirectory>><!--這里相當於指定我們平常的webroot路徑-->
- <tomcatWebXml>webapp/WEB-INF/web.xml</tomcatWebXml>
- </configuration>
- </plugin>
- </plugins>
- </build>
- </project>
<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>lyvee.maven.example</groupId> <artifactId>lyvee.maven.example</artifactId> <!-- 把項目打成war包形式發布--> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>lyvee.maven.example Maven Webapp</name> <url>http://maven.apache.org</url> <!-- 在POM 4中,<dependency>中還引入了<scope>,它主要管理依賴的部署。目前<scope>可以使用5個值: * compile,缺省值,適用於所有階段,會隨着項目一起發布。 * provided,類似compile,期望JDK、容器或使用者會提供這個依賴。如servlet.jar。 * runtime,只在運行時使用,如JDBC驅動,適用運行和測試階段。 * test,只在測試時使用,用於編譯和運行測試代碼。不會隨項目發布。 * system,類似provided,需要顯式提供包含依賴的jar,Maven不會在Repository中查找它。 --> <pluginRepositories> </pluginRepositories> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> <build> <finalName>lyvee.maven.example</finalName><!--項目名字--> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>tomcat-maven-plugin</artifactId><!--tomcat插件--> <version>1.1</version> <executions> <execution> <id>tomcat-deploy</id> <phase>deploy</phase> <goals> <goal>deploy</goal> </goals> </execution> </executions> <configuration> <path>/</path><!--訪問路徑--> <port>8090</port><!--端口號--> <warSourceDirectory>src/main/webapp</warSourceDirectory>><!--這里相當於指定我們平常的webroot路徑--> <tomcatWebXml>webapp/WEB-INF/web.xml</tomcatWebXml> </configuration> </plugin> </plugins> </build> </project>
如此tomcat-maven-plugin就已經配置好了,最后就是要讓這個項目跑起來了,首先設置一下運行參數
分別在maven build下面配置三個
tomcat的運行環境配置main:
jar:
- -Xms512m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=256m -XX:MaxNewSize=512m -XX:MaxPermSize=512m
-Xms512m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=256m -XX:MaxNewSize=512m -XX:MaxPermSize=512m
environment:
- name:MAVEN_OPTS
- value:-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=tomcat的端口,server=y,suspend=y
name:MAVEN_OPTS value:-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=tomcat的端口,server=y,suspend=y
然后配置一個編譯環境,由於maven項目同我們普通的J2EE項目不同,需要用maven命令來編譯,故此需要配置一下編譯環境(你要是不想對這個一個黑乎乎的dos窗口敲命令,還是配置一下)
new一個maven build,配置一下main就ok了:
最后是打包的命令,也是新建一個maven build 配置一下main:
先運行配置好的編譯命令,然后運行打包命令,最后運行tomcat。就能跑起來了。