假设我有。
top/
|-parent/pom.xml
|-module1/pom.xml
|-module2/pom.xml ->depends on module1-SNAPSHOT.jar
m2e的一个很好的特性是,如果我在eclipse中导入两个多模块模块,如果其中一个依赖于另一个,那么它们的构建输出/类目录将被链接。我不需要在module1上做maven安装,但module1上的最新更改会被module2拾取。
尽管对于较小的项目或较少的模块来说,这是一个很好的特性。但是当更新一个项目开始在所有其他项目上进行级联构建时,就会变得很痛苦。此外,在eclipse中添加更多模块不会在每次从工作空间中添加或删除项目时拆分整个工作空间。
问题来了:是否有可能为m2e直接引用快照jar文件从。m2存储库?如果我想让模块1的最新数据对模块2可用。我将不得不maven安装module1,它将在.m2存储库中创建SNAPSHOT.jar文件。
注意:我使用eclipse luna + j2ee。版本:Luna Service Release 2 (4.4.2)建筑编号:20150219-0600。所以我使用maven m2e-wtp,这是默认的。
您需要在您想要使用快照jar引用的项目上基本上禁用工作区解析。右键点击你的网页项目然后点击
Maven> Disable Workspace Resolution
从现在开始,web项目将不再引用它的工作空间项目依赖项,而是引用已经安装在本地Maven存储库中的jar。但要注意,要么全有,要么全无:你不能让一些项目仍然被你的web项目引用,而另一些项目则被它们的快照jar引用。这迫使你在每次修改项目依赖项时运行mvn install。
另一个选择是关闭你不打算经常修改的项目。关闭后,m2e将使用本地Maven仓库中的引用。