构建依赖于eclipse工作区中另一个简单项目的简单maven项目时出错

构建依赖于eclipse工作区中另一个简单项目的简单maven项目时出错,eclipse,maven,m2eclipse,Eclipse,Maven,M2eclipse,我创建了两个最简单的eclipse maven项目,一个是test1,另一个是test2 Projecttest1在它唯一的类main.java中只包含一个“say hello”静态main方法 Projecttest2只包含一个静态main方法,在其唯一的类main.java中调用test1的“say hello”方法 当然,在项目test2的pom.xml中,声明了对test1的依赖关系。 就这样 当然,我可以使用“maven clean package”成功构建项目test1,并运行OK

我创建了两个最简单的eclipse maven项目,一个是test1,另一个是test2
Projecttest1在它唯一的类main.java中只包含一个“say hello”静态main方法
Projecttest2只包含一个静态main方法,在其唯一的类main.java中调用test1的“say hello”方法
当然,在项目test2的pom.xml中,声明了对test1的依赖关系。 就这样
当然,我可以使用“maven clean package”成功构建项目test1,并运行OK
但当我试图用“maven clean package”构建test2时,它给出了错误:

“[错误]无法在项目test2上执行目标:无法解析项目测试的依赖项:test2:jar:0.0.1-SNAPSHOT:找不到工件测试:test1:jar:0.0.1-SNAPSHOT->[帮助1] “

我知道,如果我使用Test1运行“mvn install,一切都会好起来,但我只是不想将Test1安装到本地maven存储库中,我想让它在本地工作区中可靠,我该怎么做?我有什么问题吗



顺便说一句,如果我在eclipse中打开'Maven Repositories'视图,我可以看到'test1-jar'已经在'localrepositories'-->'Workspace Projects'下,这意味着jar已经安装在eclipse的工作区存储库中。非常奇怪的是,'test2-jar'也存在,尽管“mvn包”失败了。

EclipseMaven插件m2e有一个称为“工作区解析”的特性。如果启用它,则可以直接使用工作区中其他项目的结果。您可以看到,如果在Eclipse项目中打开“Maven Dependencies”文件夹,它是有效的。在这里,您可以在另一个项目前面看到一个文件夹符号(而不是其他JAR的常用二进制符号)


可以全局(在首选项中)或每个项目(右键单击->Maven->启用工作区解析)启用工作区解析。

Eclipse Maven插件m2e有一个称为“工作区解析”的功能。如果启用它,则可以直接使用工作区中其他项目的结果。您可以看到,如果在Eclipse项目中打开“Maven Dependencies”文件夹,它是有效的。在这里,您可以在另一个项目前面看到一个文件夹符号(而不是其他JAR的常用二进制符号)


工作区解析可以全局启用(在首选项中)或每个项目启用(右键单击->Maven->启用工作区解析)。

您可以将资源插件绑定到Test1的包阶段,以将创建的jar复制到test2 lib文件夹中(假设此lib文件夹位于test2的类路径上):但是要小心,因为标准方法是maven现在所做的,即将test1安装到本地存储库,然后在Test2中提取依赖项是的,我理解你的意思,根据你的建议,我必须在pom.xml中为每个依赖的jar添加很多内容
但是我认为应该有其他更好的选择。如果我在eclipse中打开“Maven Repositories”视图,我可以看到“Local Repositories”-->“Workspace Projects”下已经有了“test1-jar”,这意味着jar已经安装在eclipse的工作区存储库中。您的另一种可能是在test2的类路径中包含test1 jar(及其未包含在test2中的依赖项)。与标准的maven way相比,仍然相当乏味,因为您可以将资源插件绑定到Test1的包阶段,以将创建的jar复制到test2 lib文件夹中(假设此lib文件夹位于test2的类路径上):请注意,maven现在的标准做法是,将test1安装到本地存储库,然后在Test2中提取依赖项。是的,我理解你的意思,根据你的建议,我必须在pom.xml中为每个依赖的jar添加很多内容。
但是我认为应该有其他更好的选择。如果我打开“Mav”在eclipse中的en Repositories视图中,我可以看到“Local Repositories”-->“Workspace Projects”下已经有了“test1-jar”,这意味着jar已经安装在eclipse的工作区存储库中。您的另一种可能是在test2的类路径中包含test1 jar(以及它不包含在test2中的依赖项).与标准的maven方式相比,仍然相当乏味