我从昨天开始阅读和尝试maven。但它让我变得疯狂。 我是java开发人员,但之前从未遇到过ant或maven。
我想知道POM.xml文件中依赖标记究竟发生了什么? 让我们说,我正在使用骆驼框架,并希望使用骆驼核心罐。 如果我的一个类文件包含以下行:
CamelContext context = new DefaultCamelContext();
那么我到底需要做什么呢? 我是否需要在类路径中自己包含jar,依赖标记是否会通过Internet下载jar文件?
如果案例是前者,依赖标记会做什么? &安培;我应该在哪里放置我的jar文件?我的意思是我的硬盘上有没有特定的位置?和 如果案例是横向的,那么在编译期间我得到错误“无法解析为类型”
是否要指定进口?
我知道这个问题可能听起来很愚蠢,但我无法找到答案。 我试过googling很多,它对我没有帮助。
任何帮助都会非常有用,甚至可以帮助我在不久的将来遇到的maven话题。
提前致谢。
解决。请查看https://stackoverflow.com/a/20094312/1121208以获取帮助
答案 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, 甚至自动获取已用库的来源。
答案 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等中提供的信息进行下载。
可以检查正确的groupid等
下载这些jar文件后,它们会自动添加到类路径中,并可在项目中使用。
如果您正在搜索的jar文件在中央存储库中不可用,maven可能会抛出错误,在这种情况下,您可以手动下载并让maven知道它。