Maven項目搭建及常用包添加

jopen 10年前發布 | 21K 次閱讀 Maven 項目構建

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項目了。
 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!