Maven作用大家可以自己查下,java用它來搭建感覺還是很不錯的。最近用了一段時間,寫點東西留下。
我不習慣使用命令式的,所以我的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,選中項目右鍵點擊Properties,在Project Facets中選擇Dynamic Web Module 和 Jave(只有經過上述兩步操作才能在Tomcat中發佈),如果修改此處後還是無法在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時,項目中的文件對應Publish後路徑。記得加上Maven包,只有這樣Maven管理的包才能發佈過去。或者可以直接修改修改.settings文件夾下的org.eclipse.wst.common.component文件中的配置,此配置是配置發佈後對應的路徑。如:
<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文件,在其中加入包的依賴,這樣在發佈時可以將由Maven管理的包直接發佈過去。如:
<?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>
Dependencies:添加jar包的頁面,很重要!
Plugins:添加maven插件的頁面.比如tomcat-maven-plugin等.
Reporting:從沒用過,無視~
Dependency Hierarchy:用於顯示jar包的依賴關係.沒事的時候可以看看jar包的依賴關係.
Effective POM:顯示maven的編譯路徑,plugin之類的.也可以無視.
pom.xml:導入jar包的信息,可以在其中進行修改.重要
<id>jboss-public-repository</id>
<repositories>
<repository>
<id>jboss-public-repository-group</id>
<name>JBoss Public Maven Repository Group</name>
<url>https://repository.jboss.org/nexus/content/groups/public-jboss/</url>
<layout>default</layout>
<releases>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>jboss-public-repository-group</id>
<name>JBoss Public Maven Repository Group</name>
<url>https://repository.jboss.org/nexus/content/groups/public-jboss/</url>
<layout>default</layout>
<releases>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
<profile>
<id>jboss-deprecated-repository</id>
<repositories>
<repository>
<id>jboss-deprecated-repository</id>
<name>JBoss Deprecated Maven Repository</name>
<url>https://repository.jboss.org/nexus/content/repositories/deprecated/</url>
<layout>default</layout>
<releases>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
</releases>
<snapshots>
<enabled>false</enabled>
<updatePolicy>never</updatePolicy>
</snapshots>
</repository>
</repositories>
</profile>