繁体   English   中英

M2Eclipse:从Eclipse工作区解析Maven依赖项

[英]M2Eclipse: Resolving Maven dependencies from the Eclipse workspace

M2Eclipse主页声明该插件具有以下功能:

从Eclipse工作区解析Maven依赖项而不安装到本地Maven存储库

由于我没有找到任何文档,我无法弄清楚这究竟意味着什么以及它是如何完成的。 我特别感兴趣的是工作区中的项目对应于两个不同的jar(两者都包含类的部分)。

Eclipse工作区(使用M2E时)充当本地maven存储库。 您签出的每个Maven项目都可用作依赖项(就像您已将其安装在本地存储库中一样)。

例如:如果您的项目A依赖于lib B版本1.0.0并且您在1.0.0版本上检查了lib B的源代码,那么Eclipse将能够使用B的工作区版本编译A.您无需安装本地存储库中的lib B.

当您需要对lib进行更改并在工作区中的应用程序中对其进行测试时,这非常有用。

但请注意,pom A上lib B的依赖版本和pom B上声明的B版本必须完全匹配才能生效。 例如,如果在A的pom.xml上,您有:

 <dependency>
        <groupId>a.b.c</groupId>
        <artifactId>B</artifactId>
        <version>1.0.0</version>
 </dependency>

您需要1.0.0版本的结帐B.

如果你需要在B上进行更改,你可能需要将你的依赖版本更改为SNAPSHOT(例如1.0.1-SNAPSHOT)并查看版本的B.

您还需要在Eclipse项目中选中“Resolve workspace artifacts”选项,以使其正常工作。 (右键单击项目 - >属性 - > Maven - >从Workspace项目中解析依赖项)

如果要确保Eclipse正在使用工作空间上的版本而不是已安装的版本(甚至是远程存储库中的版本),请检查pom.xml编辑器上的“依赖关系”选项卡。 使用jar图标显示“常规”依赖项,使用Eclipse项目图标显示在工作区上解析的依赖项(如lib B)。

M2Eclipse读取工作空间中已打开项目的Maven描述符(pom.xml)以解析工件,即使项目尚未安装在本地maven存储库中(命令mvn install )。

例如,您有2个项目A和B. A取决于B.如果您正在处理这两个项目,并且两个项目都在您的工作区中打开。 Eclipse将在解析项目A的依赖项时自动构建项目B.因此,当您运行项目A时,Eclipse将确保您使用项目B的最新版本。

如果直接使用Maven运行项目A,Maven将从本地存储库获取项目B版本。 因此,您必须在运行A之前安装项目B以获得最新版本( mvn install B )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM