了解Maven依赖关系

时间:2013-09-24 15:43:38

标签: java maven

我是使用Maven构建项目的新手。我知道您在POM文件中声明了依赖项,这些依赖项概述了项目所需的jar,以便它们在编译时添加到构建中。

我的问题是,当我需要jar文件来开发应用程序时,它在开发过程中如何工作?我认为Maven的观点是你不必实际拥有jar文件,它会被获取并在构建时加入战争。但是如果我正在开发并且我需要一个jar文件(例如Jersey),我仍然需要自己拿出jar并将它放在lib目录中以便进行开发工作,对吧我知道.jar中有哪些类/方法可供我使用?有人可以向我解释我错过了什么吗?

引用jersey类的import语句是否会在编译时解决,因为现在它们以红色加下划线,因为jar当前不存在?

3 个答案:

答案 0 :(得分:1)

您的假设或推定或构想是错误的。

让我们举个例子。您正在创建一个新的Web应用程序项目

  1. 使用maven:archetype
  2. 创建项目
  3. 将项目转换为符合eclipse(符合任何IDE标准)。这是通过执行一个命令完成的,这会将所需的jar添加到类路径文件中,您可以像平常一样开发应用程序。
  4. 构建和部署

答案 1 :(得分:1)

首先,对于任何Java Maven项目,您必须选择“Build With Dependencies”选项,尤其是在使用NetBeans时。使用Eclipse,您可以选择“下载源代码”。完成后,将下载Maven依赖项(JAR文件)。

此外,您说过您的import语句将在编译时解析。单击“使用依赖项构建”选项(右键单击NetBeans中的Java项目)即可完成此操作,因为这将下载所有依赖项并构建应用程序并解析使用pom.xml中找到的JAR库的任何导入

答案 2 :(得分:1)

一旦你在Maven pom中指定了一个依赖项,那么它的maven就有责任下载它。记住,Maven不会为你的代码是否依赖于那个jar而烦恼。 所以在你的ide创建Maven项目[不是简单的java项目]中,在pom中添加所有依赖项,当你保存pom时,将下载所有依赖项。 如果没有下载依赖项,那么您需要检查maven settings.xml文件,其中存储库URL或凭据可能不正确。

还想要广告构建部分详细信息。 Maven有很多插件可以帮助你在war文件[assembly plugin]或rpm [maven rpm plugin]中打包所有依赖项。这些插件会将所有依赖项和主jar一起包装到单个可部署文件中。