2011-04-27 124 views
2

我正在對Maven進行第一次破解並遇到問題。我們有一個部署在Tomcat 6上的應用程序。我們有幾個jar文件被添加到tomcat的lib文件夾中。然後在我們的構建路徑中添加這個tomcat庫。將Tomcat庫添加到Maven

如何添加tomcat庫到maven?這是一個不好的方法來做到這一點?有沒有其他的選擇?

在此先感謝

+0

你特別依賴什麼tomcat庫? :O是不是servlet-api(即標準j2ee)之一? – Liv 2011-04-27 16:43:34

+0

它們是我們在新項目中開發和使用的jar文件。 – blong824 2011-04-27 16:45:19

回答

8

任何Tomcat的lib目錄應與範圍provided行家依賴:

提供
這很像編譯,而是指你所期望的 JDK或容器提供 依賴在運行時。例如, 建設 的Java企業版的Web應用程序時,你會 設置提供,因爲Web容器 提供這些類的Servlet API的 的依賴和相關的Java EE的API範圍 。這個範圍是 僅在編譯和 測試類路徑上可用,並且不是傳遞性的。

來源:Maven Dependency Scope

例子:

<dependency> 
    <groupId>javax.servlet</groupId> 
    <artifactId>servlet-api</artifactId> 
    <version>2.5</version> 
    <scope>provided</scope> 
</dependency> 

如果庫是你自己的,你必須安裝或將它們部署到本地或遠程存儲庫。

+0

那麼我們的tomcat lib文件夾中有以下內容:一個jndi.properties文件,mysql-connector.X.jar,postGis.x.jar,postGreSQL.x.jar,ourJarFile.jar和另一個customJar.jar。我猜測我可以使mysql,postgre和postgis依賴,但我不清楚如何處理我們的自定義jar和jndi屬性文件。 – blong824 2011-04-27 16:53:51

+0

@blong或許使用範圍系統:http://stackoverflow.com/questions/4959007/using-closed-source-dependencies-with-maven/4960243#4960243 – 2011-04-27 17:15:15

1

您應該從Tomcat安裝的依賴關係添加到Maven項目,分開。然後,將其範圍設置爲「提供」,以便它們不與工件捆綁在一起。

1

您應該在POM的<dependencies>部分列出項目的每個依賴關係。

這種方式Maven知道要對它們進行編譯,並將這些依賴包括在它爲你打包的.war文件的WEB-INF/lib文件夾中。支持Maven的IDE可以將這些庫包含在它們用於顯示/構建/運行代碼的類路徑中。