Maven項目搭建及常用包添加

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文件中的配置,此配置是配置發佈後對應的路徑。如:

<?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文件,在其中加入包的依賴,這樣在發佈時可以將由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>
(此文件也在直接在工程目標下直接找到)
六、經過上面幾步,基本的Maven管理包環境已經搭建好了,可以打開Pom.xml文件添加需要的包了,它的幾個視圖作用分別是:
Overview:顯示maven項目的一些基本信息. 
Dependencies:添加jar包的頁面,很重要! 
Plugins:添加maven插件的頁面.比如tomcat-maven-plugin等. 
Reporting:從沒用過,無視~ 
Dependency Hierarchy:用於顯示jar包的依賴關係.沒事的時候可以看看jar包的依賴關係. 
Effective POM:顯示maven的編譯路徑,plugin之類的.也可以無視. 
pom.xml:導入jar包的信息,可以在其中進行修改.重要
 
七、構建項目後最好將工程關閉再重新打開,有時候如果不重新打開配置就無法加載進入發佈路徑去。經過上述幾步就可以搭建Maven項目了,直接在工程文件夾下打開.metadata\.plugins\org.eclipse.wst.server.core 路徑,就可以看到發佈後的工程。其主要內容均在wtpwebapps文件夾下。
 
八、加包。在pom.xml文件的Dependencies下,Dependencies中Add包。
struts2:struts2-core
spring:spring-orm,spring-struts,struts2-spring-plugin
acegi:acegi-security-cas
hibernate:hibernate-core
對於上述幾個,只要加入這幾個包就可以了,其它的依賴全會自動加入。保存時自動下載所需要的包至本地倉庫。在對tomcat clean後就可以在發佈路徑下看到包了。
 
九、注意,有時間包下載可能不成功,就時候就得重新下載了,重新下載前先到本地倉庫中刪除此包文件夾,方可重新下載。到local repository中找到對應的文件夾,會發現裏面有一個XXXX.jar.lastupdated的文件,這個是之前沒有下載完成的jar,由於它的存在,影響了maven的更新,刪之,再次update dependencies,搞定。 (到c盤中對應的系統帳號文件夾下找.m2)。
 
十、但如果Jboss包下載不成功時,得注意下,不但按步驟9操作,而且還要對setting文件進行設置下,如果使用的是Eclipse的Maven插件版本話,可以先下載個Maven,解壓後找到裏面的setting文件(conf文件夾中),在<profiles>中加入:
<profile>  
      <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>
並且在<activeProfiles>中加入:
<activeProfile>jboss-public-repository</activeProfile>
注意:此處默認是註釋的,加入時將註釋先去掉
至此,基本可以發佈Maven項目了。
簡單的struts+spring用Maven搭建Demo:http://download.csdn.net/source/3533859
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章