究竟maven依赖标签是做什么的?

时间:2013-11-19 12:21:03

标签: eclipse maven-3

我从昨天开始阅读和尝试maven。但它让我变得疯狂。 我是java开发人员,但之前从未遇到过ant或maven。

我想知道POM.xml文件中依赖标记究竟发生了什么? 让我们说,我正在使用骆驼框架,并希望使用骆驼核心罐。 如果我的一个类文件包含以下行:

CamelContext context = new DefaultCamelContext();

那么我到底需要做什么呢? 我是否需要在类路径中自己包含jar,依赖标记是否会通过Internet下载jar文件?

如果案例是前者,依赖标记会做什么? &安培;我应该在哪里放置我的jar文件?我的意思是我的硬盘上有没有特定的位置?和 如果案例是横向的,那么在编译期间我得到错误“无法解析为类型”

是否要指定进口?

我知道这个问题可能听起来很愚蠢,但我无法找到答案。 我试过googling很多,它对我没有帮助。

任何帮助都会非常有用,甚至可以帮助我在不久的将来遇到的maven话题。

提前致谢。

解决。请查看https://stackoverflow.com/a/20094312/1121208以获取帮助

4 个答案:

答案 0 :(得分:0)

如果可用,

dependency标记将为您下载依赖标记中指定的jar。否则会引发pom.xml错误 - 找不到依赖..

进口与maven无关。当您在类/ java文件中使用另一个类时,它们将出现。因此,如果您通过yourserf在构建路径中导入jar,或者如果您使用maven将其放在那里,您将获得导入。

您使用的是eclipse还是其他任何ide?

答案 1 :(得分:0)

如果没有maven,你需要将jar放入lib文件夹。

使用maven,您可以在<dependencies>

中指定声明
<dependency>
  <groupId>log4j</groupId>
  <artifactId>log4j</artifactId>
  <version>1.2.17</version>
</dependency>

当您执行mvn package时,maven将在您的PC上下载所需的jar。

使用Eclipse和m2e(maven eclipse集成)你可以做到这一切都不离开Eclipse, 甚至自动获取已用库的来源。

阅读http://maven.apache.org/值得。

答案 2 :(得分:0)

首先,Maven是一个构建工具。它不会运行您的应用程序。它构建它。因此,在运行时,需要设置类路径,就像任何其他应用程序将使用其他东西构建的那样。

构建应用程序时,您依赖于外部库。 Maven的依赖机制只是让你声明你需要的库。构建应用程序时,Maven会从中央存储库(或其中的存储库)下载这些库,并将它们存储在硬盘驱动器上的本地存储库中。这些jar由Maven自动添加到构建类路径中。但在运行时,根据您正在构建的ap的类型,您必须复制或嵌入这些jar才能创建可运行的应用程序。

Java的规则不会改变,只需用Maven构建它们。 Meven使用stadard Java编译器(javac)。当然,如果您想通过简单名称使用类,则必须为此类添加import语句。

我认为,在使用Maven之前,您应该尝试根据外部库编译和运行一个简单的应用程序,而不使用任何IDE。然后,您将更好地理解构建和运行应用程序所需的所有步骤,构建和运行时类路径的概念等。

答案 3 :(得分:0)

终于得到了我需要知道的东西 为可能陷入同样情况的其他人分享

依赖标记是否下载指定的jar?

maven依赖关系标记实际上会下载您在依赖关系标记中指定的jar文件。它将其下载并保存在硬盘上的.m2 / repositories(本地存储库)文件夹下(以及上次更新等信息)

本地存储库在所有项目之间共享

从哪里下载?

它从中央存储库下载jar。中央存储库包含项目中几乎所有需要的开源jar文件。它会根据您在groupid,artifactid等中提供的信息进行下载。

http://repo1.maven.org/maven/

http://mvnrepository.com/

可以检查正确的groupid等

下载这些jar文件后,它们会自动添加到类路径中,并可在项目中使用。

如果您正在搜索的jar文件在中央存储库中不可用,maven可能会抛出错误,在这种情况下,您可以手动下载并让maven知道它。