2010-09-13 32 views
1

我正在學習Maven,我需要一點幫助才能開始。我使用m2eclipse插件(Maven),我想生成一個像Struts 2,Hibernate 3,MySQL這樣的項目。現在我只是創建一個簡單的項目與原型:maven-archetype-webapp幫助使用maven artifacts

什麼是我需要添加的依賴項?

+0

MAIS廣利EST LA問題ICI? |那麼這裏有什麼問題? – romaintaz 2010-09-13 13:37:36

+0

我需要添加哪些依賴項? – Scandolous 2010-09-13 13:41:23

回答

3

現在我剛剛創建的原型一個簡單的項目:Maven的原型-webapp

我的建議是使用struts2-archetype-blank原型來引導您的Struts 2應用程序。你可以從m2eclipse(通過嚮導)或從命令行調用它。例如從命令行:

mvn archetype:generate -B \ 
         -DgroupId=tutorial \ 
         -DartifactId=tutorial \ 
         -DarchetypeGroupId=org.apache.struts \ 
         -DarchetypeArtifactId=struts2-archetype-blank \ 
         -DarchetypeVersion=2.2.1 

該,添加Hibernate 3和MySQL JDBC驅動程序所需的依賴關係。由於經常,有幾種方法可以做到這一點:

    手動
  • (通過在pom.xml添加<dependency>元素)使用m2eclipse的嚮導
      經由POM編輯的依賴標籤
    • 通過在你的項目上點擊右鍵,然後Maven>添加依賴關係
  • 通過Eclipse快速修復選項

Adding Dependencies Using m2eclipse博客帖子有一個屏幕鑄展示其中的一些。

什麼解決方案,你會選擇,到了最後,你pom.xml至少應申報以下DEPS:

<project> 
    <dependencies> 
    ... 
    <dependency> 
     <groupId>org.apache.struts</groupId> 
     <artifactId>struts2-core</artifactId> 
     <version>2.2.1</version> 
    </dependency> 
    ... 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-core</artifactId> 
     <version>3.3.2.GA</version> 
    </dependency> 
    <dependency> 
     <groupId>javassist</groupId> 
     <artifactId>javassist</artifactId> 
     <version>3.9.0.GA</version> 
    </dependency> 
    ... 
    <dependency> 
     <groupId>mysql</groupId> 
     <artifactId>mysql-connector-java</artifactId> 
     <version>5.1.13</version> 
    </dependency> 
    </dependencies> 

</project> 

,如果你想使用最新版本的Hibernate的文物,你必須添加repositories元素下的JBoss的存儲庫,因爲它們不可用在Maven中央存儲庫(抱歉讓事情變得更加複雜,但是,好,這是怎麼回事兒):

<project> 
    <dependencies> 
    ... 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-core</artifactId> 
     <version>3.5.5-Final</version> 
    </dependency> 
    ... 
    <dependencies> 
    ... 
    <repositories> 
    <repository> 
     <id>repository.jboss.org-public</id> 
     <name>JBoss repository</name> 
     <url>https://repository.jboss.org/nexus/content/groups/public</url> 
    </repository> 
    </repositories> 
    ... 
</project> 
+0

thx爲您提供幫助,但是當我想在wizzard中選擇struts2-archetype-blank時,它不存在 – Scandolous 2010-09-13 14:25:52

+0

@Scandolous然後,工件索引可能已過時。如果我沒有錯,可以強制從存儲庫視圖重建索引。或者在命令行上運行該命令。 – 2010-09-13 15:17:12

+0

爲什麼我在編譯我的項目時出現這個錯誤:Missing artifact javassist:javassist:jar:3.9.0.GA:compile – Scandolous 2010-09-14 08:23:50

0

在Maven的原型是用來爲特定類型的項目,創建一個簡單的結構。基本上,它將創建pom.xml文件,使用Maven約定的目錄結構以及一些簡單文件。一些原型會創建更復雜的結構,具體取決於它們相關的項目類型。

就你而言,MySQL和Hibernate在Maven中沒有特定的信息,除了依賴。所以最好的辦法是生成一個網絡結構,最終使用Struts Maven archetype(我從來沒有使用它,所以我不能說這個原型的質量是否好),然後添加足夠的Hibernate/MySQL驅動程序依賴。

您可以使用MvnRepository網站查找具體依賴關係的groupIdartifactIdversion

你的關心,我建議org.hibernate:hibernate:3.xxmysql:mysql-connector-java庫(使用範圍runtime的JDBC驅動程序):

<dependency> 
    <groupId>org.hibernate</groupId> 
    <artifactId>hibernate</artifactId> 
    <version>3.1.3</version> 
</dependency> 
<dependency> 
    <groupId>mysql</groupId> 
    <artifactId>mysql-connector-java</artifactId> 
    <version>5.1.13</version> 
    <scope>runtime</scope> 
</dependency> 
+0

好的,我把這個依賴放在我的pom.xml中,我不明白JDBC驅動,我必須添加一個JDBC驅動依賴。 – Scandolous 2010-09-13 13:51:33

+0

您可以將它添加到依賴項列表中,但使用'runtime'作用域。這樣,這個依賴不會在編譯或單元測試期間被使用,而是會被捆綁到最終的包中(WAR文件)。 – romaintaz 2010-09-13 14:28:48