說說Maven項目搭建及常用包添加
什么是Maven?
Maven是基于項目對象模型(POM),可以通過一小段描述信息來管理項目的構(gòu)建,報告和文檔的軟件項目管理工具.
如果你已經(jīng)有十次輸入同樣的Ant targets來編譯你的代碼、jar或者war、生成javadocs,你一定會自問,是否有一個重復(fù)性更少卻能同樣完成該工作的方法。Maven便提供了這樣一種選擇,將你的注意力從作業(yè)層轉(zhuǎn)移到項目管理層。Maven項目已經(jīng)能夠知道如何構(gòu)建和捆綁代碼,運(yùn)行測試,生成文檔并宿主項目網(wǎng)頁.
項目的主頁地址為:http://maven.apache.org/
我不習(xí)慣使用命令式的,所以我的Maven用的是Eclipse插件,插件地址:http://m2eclipse.sonatype.org/sites/m2e
安裝以后,就可以用它來建立項目了。
一、首先新建一個 Maven project,在Next中選擇Create a simple project 這樣就新建一個Maven項了。
二、修改.project文件(可以在Navigator視圖中看到)
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.wst.common.project.facet.core.builder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.wst.validation.validationbuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.maven.ide.eclipse.maven2Builder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
- <nature>org.maven.ide.eclipse.maven2Nature</nature>
- <nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- <nature>org.eclipse.wst.common.project.facet.core.nature</nature>
- <nature>org.eclipse.wst.jsdt.core.jsNature</nature>
- </natures>
三、修改工程的Project Facets,選中項目右鍵點(diǎn)擊Properties,在Project Facets中選擇Dynamic Web Module 和 Jave(只有經(jīng)過上述兩步操作才能在Tomcat中發(fā)布),如果修改此處后還是無法在Apace的tomcat service中Add此項目,就可以查看org.eclipse.wst.common.project.facet.core.xml的文件,里面配置有各種版本信息。
- <?xml version="1.0" encoding="UTF-8"?>
- <faceted-project>
- <fixed facet="wst.jsdt.web"/>
- <installed facet="java" version="1.6"/>
- <installed facet="jst.web" version="2.5"/>
- <installed facet="wst.jsdt.web" version="1.0"/>
- </faceted-project>
我在搭建的時候<installed facet="jst.web" version="3.0"/>太高,修改后才能Add。
四、配置輸出,在 Properties 中的Deployent Assembly 中配置項目Publish時,項目中的文件對應(yīng)Publish后路徑。記得加上Maven包,只有這樣Maven管理的包才能發(fā)布過去。或者可以直接修改 修改.settings文件夾下的org.eclipse.wst.common.component文件中的配置,此配置是配置發(fā)布后對應(yīng)的路徑。如:
- <?xml version="1.0" encoding="UTF-8"?>
- <project-modules id="moduleCoreId" project-version="1.5.0">
- <wb-module deploy-name="xiao">
- <wb-resource deploy-path="/" source-path="/src/main/webapp"/>
- <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
- <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
- <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/test/java"/>
- <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/test/resources"/>
- <wb-resource deploy-path="/WEB-INF/lib" source-path="/src/main/webapp/WEB-INF/lib"/>
- <property name="context-root" value="xiao"/>
- <property name="java-output-path" value="/xiao/target/classes"/>
- </wb-module>
- </project-modules>
五、在Properties for Maven 下的Java Build Path 的Order and Export中配置 Build Path,勾上Maven的管理包。或者修改.classpath文件,在其中加入包的依賴,這樣在發(fā)布時可以將由Maven管理的包直接發(fā)布過去。如:
- <?xml version="1.0" encoding="UTF-8"?>
- <classpath>
- <classpathentry kind="src" output="target/classes" path="src/main/java"/>
- <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
- <classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
- <classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
- <classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER">
- <attributes>
- <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
- </attributes>
- </classpathentry>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
- <classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
- <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>
- <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
- <classpathentry kind="output" path="target/classes"/>
- </classpath>
(此文件也在直接在工程目標(biāo)下直接找到)
六、經(jīng)過上面幾步,基本的Maven管理包環(huán)境已經(jīng)搭建好了,可以打開Pom.xml文件添加需要的包了,它的幾個視圖作用分別是:
- Overview:顯示maven項目的一些基本信息.
- Dependencies:添加jar包的頁面,很重要!
- Plugins:添加maven插件的頁面.比如tomcat-maven-plugin等.
- Reporting:從沒用過,無視~
- Dependency Hierarchy:用于顯示jar包的依賴關(guān)系.沒事的時候可以看看jar包的依賴關(guān)系.
- Effective POM:顯示maven的編譯路徑,plugin之類的.也可以無視.
- pom.xml:導(dǎo)入jar包的信息,可以在其中進(jìn)行修改.重要
七、構(gòu)建項目后最好將工程關(guān)閉再重新打開,有時候如果不重新打開配置就無法加載進(jìn)入發(fā)布路徑去。經(jīng)過上述幾步就可以搭建Maven項目了,直接在工程文件夾下打開.metadata\.plugins\org.eclipse.wst.server.core 路徑,就可以看到發(fā)布后的工程。其主要內(nèi)容均在wtpwebapps文件夾下。
八、加包。在pom.xml文件的Dependencies下,Dependencies中Add包。
- struts2:struts2-core
- spring:spring-orm,spring-struts,struts2-spring-plugin
- acegi:acegi-security-cas
對于上述幾個,只要加入這幾個包就可以了,其它的依賴全會自動加入。保存時自動下載所需要的包至本地倉庫。在對tomcat clean后就可以在發(fā)布路徑下看到包了。
九、注意,有時間包下載可能不成功,就時候就得重新下載了,重新下載前先到本地倉庫中刪除此包文件夾,方可重新下載。到local repository中找到對應(yīng)的文件夾,會發(fā)現(xiàn)里面有一個XXXX.jar.lastupdated的文件,這個是之前沒有下載完成的jar,由于它的存在,影響了maven的更新,刪之,再次update dependencies,搞定。 (到c盤中對應(yīng)的系統(tǒng)帳號文件夾下找.m2)。
至此,基本可以發(fā)布Maven項目了。
簡單的struts+spring用Maven搭建Demo:http://download.csdn.net/source/3533859
原文鏈接:http://www.cnblogs.com/kuyijie/archive/2011/08/20/2146463.html
【編輯推薦】
- 電影《Java風(fēng)云》預(yù)告片
- 基于Java的HBase客戶端編程
- 關(guān)于Eclipse使用64位Java 7崩潰的問題
- Java 7是蜜糖還是毒藥?
- 紅帽的PaaS平臺OpenShift支持Java EE 6