Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何确定需要哪些罐子?_Java_Spring_Maven 2 - Fatal编程技术网

Java 如何确定需要哪些罐子?

Java 如何确定需要哪些罐子?,java,spring,maven-2,Java,Spring,Maven 2,我如何系统地确定我需要哪些JAR,从而应该包含在我使用maven作为项目管理工具的pom.xml文件中 在学习spring时,为了保持简单,将所有的jar(甚至是我从未使用过的jar)添加到类路径中 现在大部分时间,我在猜测应该包括哪些罐子。例如,我知道在我的spring配置文件中,我有: <tx:annotation-driven /> <context:annotation-config /> <aop:aspectj-autoproxy /> 所以,我

我如何系统地确定我需要哪些JAR,从而应该包含在我使用maven作为项目管理工具的pom.xml文件中

在学习spring时,为了保持简单,将所有的jar(甚至是我从未使用过的jar)添加到类路径中

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

<tx:annotation-driven />
<context:annotation-config />
<aop:aspectj-autoproxy />
所以,我想我需要:spring-context-x.x.x.jar,spring-tx-x.x.jar,spring-aop-x.x.x.jar


谢谢。

我只看到两种可能的选择。要么:

了解您正在做什么,并在事实发生之前添加所需的依赖项~或~ 毫无疑问,不要添加依赖项,让事情失败,然后在事实发生后添加依赖项
我认为只有两种可能的选择。要么:

了解您正在做什么,并在事实发生之前添加所需的依赖项~或~ 毫无疑问,不要添加依赖项,让事情失败,然后在事实发生后添加依赖项
对于查找哪些JAR包含哪些类及其相关依赖项的一般问题,您可以尝试。它以一个类名作为输入,并输出一系列Maven依赖项,您可以使用这些依赖项来获取所述类

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

我相信您已经看到,另一个很好的指标是applicationContext.XML文件中使用的XML名称空间,这表明您需要一个单独的JAR。例如,下面是一个使用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">

上面的示例意味着您需要SpringBean、SpringAOP和SpringTX JARs,spring的JAR命名是相当一致的。我不确定上面的说法是否总是正确的,但至少应该给你一个提示。

对于查找哪些JAR包含哪些类及其相关依赖项的一般问题,你可以试试。它以一个类名作为输入,并输出一系列Maven依赖项,您可以使用这些依赖项来获取所述类

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

我相信您已经看到,另一个很好的指标是applicationContext.XML文件中使用的XML名称空间,这表明您需要一个单独的JAR。例如,下面是一个使用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">

上面的示例意味着您需要SpringBean、SpringAOP和SpringTX JARs,spring的JAR命名是相当一致的。我不确定上述内容是否总是正确的,但至少应该给你一个提示。

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

如果你是一家公司,你可以设置自己的Nexus服务器。如果不是,请使用公共服务器,如http://repository.sonatype.org 注意:我还没有用过这个,因为我们有自己的搜索库。 找到库后,复制/粘贴。。。进入你的POM文件,你就可以开始了


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

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

如果你是一家公司,你可以设置自己的Nexus服务器。如果不是,请使用公共服务器,如http://repository.sonatype.org 注意:我还没有用过这个,因为我们有自己的搜索库。 找到库后,复制/粘贴。。。进入你的POM文件,你就可以开始了


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

不添加依赖项并让事情失败可能更糟,因为您可能在最坏的情况下才发现缺少的依赖项。例如,假设某个库用于在发生严重错误时发送邮件-在该错误发生之前,您可能永远也不会发现它,即使发生了错误,您也可能不会发现它-您无法收到邮件!。简而言之,这两个建议都不是系统性的。@Avi您可能想要它,但以完全自动化的方式这是不可能的。工具可以提供一些帮助,例如mvn依赖关系:分析,但它们不会考虑运行时依赖关系。所以,假设您有高覆盖率的测试,就可以手动调整类路径和回归测试。最后,不管你喜不喜欢,都要知道你在做什么是你最好的武器。@Avi在这个问题的上下文中,我假设OP是
例如,在测试期间使用他正在添加到Spring上下文配置中的内容,或者我猜他不会添加这些内容。现在,如果你的背景不同,请随意提出不同的问题。如果你对这个问题有更好的答案,请随意发布。为了清晰起见,@Avi删除了他最初的评论,他说这个答案无助于发现随时间积累的已使用/未使用的依赖项,顺便说一句,这并不是OP所要求的。我的第一个评论是对他删除的评论的回答。不添加依赖项并让事情失败可能更糟,因为在最坏的情况下,您可能无法找到缺少的依赖项。例如,假设某个库用于在发生严重错误时发送邮件-在该错误发生之前,您可能永远也不会发现它,即使发生了错误,您也可能不会发现它-您无法收到邮件!。简而言之,这两个建议都不是系统性的。@Avi您可能想要它,但以完全自动化的方式这是不可能的。工具可以提供一些帮助,例如mvn依赖关系:分析,但它们不会考虑运行时依赖关系。所以,假设您有高覆盖率的测试,就可以手动调整类路径和回归测试。最后,知道你在做什么是你最好的武器,不管你喜欢与否。@Avi在这个问题的上下文中,我假设OP正在使用,例如在测试期间,他添加到Spring上下文配置中的东西,或者我猜他不会添加它们。现在,如果你的背景不同,请随意提出不同的问题。如果你对这个问题有更好的答案,请随意发布。为了清楚起见,@Avi删除了他最初的评论,他说这个答案无助于查找随时间累积的已使用/未使用的依赖项,这与OP所问的不完全一致。顺便说一句,我的第一条评论是对他删除的评论的回答。