我是Maven的新手,使用Eclipse的 m2e 插件。我仍然围绕着Maven,但似乎无论何时我需要导入一个新的库,如java.util.List
,现在我必须手动完成为jar找到正确的存储库并添加它的麻烦到POM中的依赖项。这似乎是一个很大的麻烦,特别是因为在公共存储库中找不到某些jar,所以必须将它们上传到本地存储库。
我在Eclipse中遗漏了一些关于Maven的东西吗?当Eclipse自动导入新库时,有没有办法自动更新POM?
我试图了解如何使用Maven节省时间/精力......
答案 0 :(得分:3)
你选了一个坏榜样。无论Maven配置如何,Java Standard Runtime附带的实际Java库的部分都在那里。
考虑到这一点,如果你想添加一些外部的东西,比如Log4j,那么你需要在Log4j上添加项目依赖。然后Maven将获取依赖信息并创建一个“签名”,首先在本地缓存中搜索,然后在外部存储库中搜索。
这样的签名可能看起来像
groupId:artifactId:version
或者
groupId:artifactId:version:classifier
这标识了一个maven“模块”,然后将其下载并配置到您的系统中。一旦到位,将模块中的所有类添加到已配置的项目中。
答案 1 :(得分:0)
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时节省一些痛苦。