2011-04-27 73 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可以将这些库包含在它们用于显示/构建/运行代码的类路径中。