【发布时间】: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 方式相比仍然相当乏味