我在eclipse工作,我遇到一个问题,我不能import
我的个人java库。
我创建了库并将它们“安装”到我的本地maven仓库中(使用mvn install
)。这创建了一个子目录,该子目录与我运行命令时POM文件中的“版本”名称相关。这看起来很好。
所以在这个目录中有通常的jar文件和其他东西。
当我发布此文件时,我手动更改了POM中版本的名称。从0.0.1-SNAPSHOT到0.0.1-RELEASE
这看起来像我预期的那样有效。
但是我似乎无法找到导入新版本的jar。
在eclipse中使用maven repositories
浏览器,我可以看到新工件位于“本地”存储库中。
我尝试在以下方法中添加依赖项:
这会将依赖项详细信息添加到pom中,但类型值详细信息为<type>pom.lastUpdated</type>
这次0.0.1-RELEASE的工件是greyed out
我可以选择它,但我猜实际上什么都没发生。
它可以选择原始的0.0.1-SNAPSHOT,如果我使用它,我在pom中没有<type>
细节。
我不明白为什么RELEASE和SNAPSHOT工件存在差异,因为它们都以相同的方式生成,并且很明显它们都在浏览器中可见,磁盘上目录的内容是相同。文件名和内容相同,只有RELEASE或SNAPSHOT这个词。
我知道我可以简单地将RELEASE jar添加到我的构建路径中,但如果我打算使用maven(或者我需要这样做),这似乎是一个荒谬的事情。
我不想使用外部仓库来存储我的工件,而且我不太热衷于在本地机器上安装nexus(或类似设备)的麻烦(因为我遇到了麻烦)它在过去)。
我缺少什么,因为我可以让我的maven项目查看我的本地存储库及其所有工件。
提前致谢。
大卫
ps我已经尝试了诸如mvn dependency:purge-local-repository
这样的东西,这些东西肯定会引入/更新所有本地jar依赖项。
答案 0 :(得分:0)
所以我设法解决了我的问题。
因此,这种解决方案很荒谬,并且打破了maven的所有目的。
所以我发现(从cli运行maven)我试图使用的项目的父项中有错误。
父母错过了与scm插件的直接链接(版本错误)。
一旦我解决了这个问题,我就回到了子项目,并从父母遗漏的东西中得到了很多错误。 基本上它不是“看到&#39;所有log4j依赖项。
解决方案(确实非解决方案)。 将所有log4j依赖项添加到子项目。 在SCM和surefire测试插件中编辑(由于缺少junit,它也开始使测试代码失败)。
所以这很棒。
我必须在log4j和我/ sub / child项目的pom.xml文件中定义所有依赖项。 我还需要在父母的pom中定义它们。
因为它仍然拒绝在我的新项目中运行测试(使用上面作为依赖项),并拒绝查找log4j。然后我决定将所有这些添加为我当前项目的依赖项。
大。 我认为maven的全部意义在于我可以在我使用的日志库中定义我对log4j的依赖(这是依赖关系),然后它会自动地&#39;从这种依赖中拉出所有必需的东西。
显然不是。
如开头所述。这不是一个回答这是一个疯狂的工作。
我使用的日志库应该能够在特定的log4j版本上定义自己的需求(例如从log4j移动到log4j2),然后当我将其作为maven依赖项包含时,对所需依赖项的任何更改都应该是自动看到。
但是否:我还必须在我的其他项目中导入对log4j的依赖。所以现在如果我将我的日志库从log4j更新到log4j2,我需要转到我使用这个库的所有项目并更新他们的pom以确保我有正确版本的log4j。
似乎maven的全部内容刚刚丢失!
有人可以告诉我我哪里出错!
大卫。