Maven与IDE的集成

时间:2013-02-25 13:59:30

标签: eclipse maven ide intellij-idea dependency-management

我以为我理解了Maven,因为我曾经在一些项目中使用它,但我似乎无法用它创建我自己的项目,所以有人可以在任何我错的地方纠正我吗?

假设我创建了一个新的Maven项目(我们说我是通过Eclipse或IntelliJ完成的):

  1. 如果我向我的POM文件添加一个依赖项,假设我添加了一个可以找到该依赖项的公共存储库,那么IDE不应该下载指定的JAR并使其在我的代码中使用它时被识别?目前,我的项目无法识别应通过我的POM依赖项在JAR中找到的任何类。
  2. 假设#1确实有效,我怎么能通过maven确定我有哪些瞬态依赖?例如,我正在使用Pentaho Data Integration中的类,并且它的一些插件引用了org.mozilla.javascript等内容。*。 maven可以自动告诉我,没有我必须运行代码,看到它失败,并手动修复依赖?这里将有数百个这样的实例,因此手动修复确实不可行。

2 个答案:

答案 0 :(得分:3)

这是我的IntelliJ两分钱:

1 - 在项目的pom.xml中添加依赖项

确实应该下载依赖的jar。如果弹出,则可能需要批准“导入更改”对话框,或启用自动导入。

2 - 看到传递依赖

可以通过Maven Dependencies Diagram实现 - 遗憾的是只能在IntelliJ Ultimate版本中实现。您可以使用Maven Dependencies Plugin在您喜欢的CLI中查看依赖关系树。

答案 1 :(得分:2)

问题1:添加依赖

在Eclipse中,根据您创建项目的方式,您应该能够添加使用maven上下文菜单自动识别的依赖项。

请注意,您应该使用eclipse maven插件创建项目,以便它具有maven性质。

要从远程存储库添加依赖项/插件,如果您知道artifactId或groupId,则可以在生成的UI中搜索依赖项。无论是否在pom.xml中指定了回购网址,该插件都会启动deps。

在向POM添加依赖项后,IDE将在您保存文件后立即开始下载它和所有瞬态依赖项。

如果出现问题,您可以尝试从上下文菜单中“更新项目”。

问题2:确定传递依赖

在POM编辑器的“依赖关系层次结构”选项卡中可以看到瞬态依赖关系。

我通常默认使用命令行,因为它在跟踪dependency graph时可以提供更多的灵活性和功能。

我很抱歉,但我没有使用IntelliJ