Java Maven需要手动更新依赖项吗?

Java Maven需要手动更新依赖项吗?,java,eclipse,maven,Java,Eclipse,Maven,我是Maven的新手,使用Eclipse的m2e插件。我仍然在为Maven绞尽脑汁,但似乎每当我需要导入一个新库时,比如java.util.List,现在我必须手动完成为jar找到正确的存储库并将其添加到POM中的依赖项的麻烦。这似乎是一个大麻烦,特别是因为一些jar在公共存储库中找不到,所以它们必须上传到本地存储库中 我是否遗漏了《月食》中Maven的某些内容?当Eclipse自动导入新库时,有没有一种方法可以自动更新POM 我正在试图理解使用Maven如何节省时间/精力…您选择了一个糟糕的示

我是Maven的新手,使用Eclipse的m2e插件。我仍然在为Maven绞尽脑汁,但似乎每当我需要导入一个新库时,比如
java.util.List
,现在我必须手动完成为jar找到正确的存储库并将其添加到POM中的依赖项的麻烦。这似乎是一个大麻烦,特别是因为一些jar在公共存储库中找不到,所以它们必须上传到本地存储库中

我是否遗漏了《月食》中Maven的某些内容?当Eclipse自动导入新库时,有没有一种方法可以自动更新POM


我正在试图理解使用Maven如何节省时间/精力…

您选择了一个糟糕的示例。无论Maven配置如何,Java标准运行时附带的实际Java库部分都存在

记住这一点,如果您想添加一些外部的东西,比如Log4j,那么您需要在Log4j上添加一个项目依赖项。然后Maven将获取依赖信息并创建一个“签名”进行搜索,首先在本地缓存中搜索,然后在外部存储库中搜索

这样的签名可能看起来像

groupId:artifactId:version
或许

groupId:artifactId:version:classifier

这标识了一个maven“模块”,然后将其下载并配置到您的系统中。一旦就位,它会将模块中的所有类添加到您配置的项目中。

您选择了一个糟糕的示例。无论Maven配置如何,Java标准运行时附带的实际Java库部分都存在

记住这一点,如果您想添加一些外部的东西,比如Log4j,那么您需要在Log4j上添加一个项目依赖项。然后Maven将获取依赖信息并创建一个“签名”进行搜索,首先在本地缓存中搜索,然后在外部存储库中搜索

这样的签名可能看起来像

groupId:artifactId:version
或许

groupId:artifactId:version:classifier

这标识了一个maven“模块”,然后将其下载并配置到您的系统中。安装到位后,它将模块中的所有类添加到配置的项目中。

Maven主要节省下载和组织构建中的JAR文件的时间。通过定义“标准”项目布局和“标准”构建顺序,Maven消除了“为什么我的项目不构建”抽奖中的大量猜测。此外,您还可以使用整洁的命令,如“mvn dependency:tree”,以递归方式打印出项目所依赖的所有JAR的列表


警告:如果您使用的是M2E插件和Eclipse,那么插件本身也可能会出现问题。1.0版本(托管在eclipse.org上)比以前的0.12版本(托管在Sonatype上)友好得多。通过从apache(Maven.apache.org)下载并安装Maven的“独立”版本并从命令行运行Maven,您可以在一定程度上解决这个问题。这实际上比在Eclipse中运行Maven要稳定得多(以我个人的经验来看),并且在您尝试了解Maven时,可能会为您节省一些痛苦。

Maven主要节省在构建中下载和组织JAR文件的时间。通过定义“标准”项目布局和“标准”构建顺序,Maven消除了“为什么我的项目不构建”抽奖中的大量猜测。此外,您还可以使用整洁的命令,如“mvn dependency:tree”,以递归方式打印出项目所依赖的所有JAR的列表


警告:如果您使用的是M2E插件和Eclipse,那么插件本身也可能会出现问题。1.0版本(托管在eclipse.org上)比以前的0.12版本(托管在Sonatype上)友好得多。通过从apache(Maven.apache.org)下载并安装Maven的“独立”版本并从命令行运行Maven,您可以在一定程度上解决这个问题。这实际上比在Eclipse中运行Maven要稳定得多(以我个人的经验来看),并且在您尝试了解Maven时可能会省去一些麻烦。

您不需要修改pom.xml for java.util.List。Eclipse自动导入一个新库是什么意思?如果您键入类似以下内容的源代码:List。。。通过单词“List”后的ctrl空格,您应该会得到一个类型为dropdownlist的建议…如果您只需键入代码,List=new ArrayList();之后,您应该使用Ctrl-Shift-O来完成java文件中的导入列表,该列表应该自动填充正确的信息。否则,Eclipse的配置不正确,不需要修改pom.xml for java.util.List。Eclipse自动导入一个新库是什么意思?如果您键入类似以下内容的源代码:List。。。通过单词“List”后的ctrl空格,您应该会得到一个类型为dropdownlist的建议…如果您只需键入代码,List=new ArrayList();之后,您应该使用Ctrl-Shift-O来完成java文件中的导入列表,该列表应该自动填充正确的信息。否则,您的Eclipse配置不正确。当您说“在Log4j上添加项目依赖项”时,您是说打开POM,单击“依赖项”选项卡,然后使用组ID、工件ID等搜索Log4j吗?POM是一个名为POM.xml的文件。您可能正在使用工具自动写入和重写文件。直接打开该文件,您将在XML标记中看到一个“依赖项”块。至少在学习maven的初始阶段,查看XML以确定项目中真正设置了什么是有用的。当您说“在Log4j上添加项目依赖项”时,您是说打开POM,单击“依赖项”选项卡,然后搜索