如何确定需要哪些罐子?

时间:2010-04-22 20:08:10

标签: java spring maven-2

我如何系统地确定我需要哪些罐子,因此应该包含在我的pom.xml文件中(我使用maven作为我的项目管理工具)?

学习spring时,为了简单起见,将所有的jar(甚至是我从未使用过的jar)添加到classpath中。

现在大部分时间,我猜测要包含哪些罐子。例如,我知道在我的spring配置文件中,我有:

<tx:annotation-driven />
<context:annotation-config />
<aop:aspectj-autoproxy />

所以,我想我需要:spring-context-x.x.x.jar,spring-tx-x.x.x.jar,spring-aop-x.x.x.jar

感谢。

3 个答案:

答案 0 :(得分:3)

我只看到两种可能的选择。之一:

  • “知道你在做什么”并在事实之前添加所需的依赖关系〜或〜
  • 有疑问,不要添加依赖项,让事情失败并在事后添加依赖

答案 1 :(得分:3)

对于查找哪些JAR包含哪些类及其相关依赖项的一般问题,您可以尝试http://www.jarvana.com/jarvana/。它需要一个类名作为输入,并吐出一堆Maven依赖项,你可以使用它来获得所述类。

特别是对于Spring,我相信你必须参考它的文档。如果您对Maven有IDE支持,通常只需填写spring groupId(org.springframework)并激活<artifactId></artifactId>内的自动完成即可查看哪些JAR可用。 Spring文档中的主要部分往往有自己独立的jar。

我相信您已经看到,另一个需要单独JAR的好指标是applicationContext.xml文件中使用的XML命名空间。例如,这是使用aop,tx和beans的项目中的XML根节点:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd"
default-autowire="byName">

上面的示例意味着您需要spring-beans,spring-aop和spring-tx JAR(Spring的JAR命名相当一致)。我不确定以上是否总是如此,但它至少应该给你一个指示。

答案 2 :(得分:1)

完全忘记JAR文件的一种简单方法是使用nexus。

如果您是公司,则可以设置自己的Nexus服务器。如果没有,请使用公共服务器,例如http://repository.sonatype.org(注意:我还没有使用它,因为我们有自己的)并搜索库。 找到图书馆后,将<dependency> ... </dependency>部分复制/粘贴到您的POM文件中,就可以了。

我忘记了我们如何将maven与nexus服务器联系起来,但这并不太难......做一些搜索,你就是金色的。不再担心JAR文件!