【问题标题】:Error when build a simple maven project which depends on another simple project in eclipse workspace构建依赖于 Eclipse 工作区中另一个简单项目的简单 Maven 项目时出错
【发布时间】:2017-03-19 05:56:46
【问题描述】:

我创建了两个最简单的eclipse maven项目,一个是test1,一个是test2
项目 test1 在它的唯一类 Main.java 中只包含一个“say hello”静态 main 方法。
项目 test2 也只包含一个调用 test1 的 'say hello' 方法的静态 main 方法,在其唯一的 Main.java 类中。
当然,在项目 test2 的 pom.xml 中,声明了 对 test1 的依赖。 而已!
当然,我可以使用 'maven clean package' 成功构建项目 test1,然后运行正常。
但是当我尝试使用'maven clean package'构建test2时,它给出了错误:

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

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


顺便说一句,如果我在 eclipse 中打开 'Maven Repositories' 视图,我可以看到 'test1 - jar' 已经在 'Local Repositories' 下--> 'Workspace Projects' ,这意味着 jar 已经安装在 Eclipse 的工作空间存储库中。很奇怪 'test2 - jar' 也存在,虽然 'mvn package' 失败了。

【问题讨论】:

  • 您可以将资源插件绑定到 Test1 的打包阶段,以将创建的 jar 复制到您的 test2 lib 文件夹(假设此 lib 文件夹位于 Test2 的类路径上):maven.apache.org/plugins/maven-resources-plugin/examples/… 请注意,尽管标准方式是 maven 现在所做的,即将 test1 安装到本地存储库,然后在 Test2 中拉取依赖项
  • 是的,我明白你的意思,根据你的建议,我必须在 pom.xml 中为每个依赖的 jar 添加很多内容。
    不过我觉得应该还有其他更好的选择。如果我在 Eclipse 中打开 'Maven Repositories' 视图,我可以看到 'test1 - jar' 已经在 'Local Repositories'-->'Workspace Projects' 下,这意味着 jar 已经安装在 Eclipse 的工作区存储库中。
  • 您的另一种可能性是在 test2 的类路径中包含 test1 jar(及其未包含在 test2 中的依赖项)。与标准的 maven 方式相比仍然相当乏味

标签: eclipse maven m2eclipse


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-03
    • 2013-06-17
    • 1970-01-01
    • 2012-06-16
    • 2011-07-31
    • 2011-05-11
    相关资源
    最近更新 更多