【问题标题】:How to edit snapshot dependencies如何编辑快照依赖项
【发布时间】:2014-02-14 13:41:17
【问题描述】:

我是这个行业的新手,所以提前为这个问题可能很愚蠢表示歉意。 在团队中,我们使用 Intellij IDEA 13 作为 IDE,并为我们的项目使用 Maven 3。我们提供了一些在线服务和门户,而我刚刚开始研究一个:该项目有几个由其他旧项目共享的依赖项,一些是 JAR 档案,一些是 WAR...

我的问题是:如何在本地编辑这些依赖项(例如,编辑 resources.properties 是我想到的情况),我的导师建议将依赖项转换为快照并使用它们。 我设法做的是在我的本地存储库中创建适当文件夹的副本,并更改​​依赖项版本在名称或文件中的任何位置,然后修改我的 pom.xml 文件。

现在,如果我打开 JAR/WAR 并编辑一些文件,这将完美运行,但我希望能够从我的 IDE 中执行此操作,也导致无法建议我可能正在执行此操作错误道。我是否需要以某种方式解压缩依赖项才能这样做?我的整个方法都错了吗?

P.S.:我会问我办公室里的人,但奇怪的是,今天没有人能提供帮助!

【问题讨论】:

  • 在我看来,您需要阅读一本关于 Maven 的好书,因为您的整个问题源于不了解 Maven 的用途以及如何应用它。您收到的建议对我来说听起来像是您应该将 poms 中的一些依赖项版本更改为 -SNAPSHOT 版本以使用这些依赖项的最新开发中版本,但这在很大程度上也是一个猜测,无法访问您的环境看看真正的真相是什么。
  • 尽管这绝对是真的,但现在它不太可行,因为我已经被“扔”到 Spring 和 Maven 等等,并且试图避免之后不得不阅读太多的书工作,因为时间是有限的资源呵呵。该建议旨在让我能够修改依赖项,而不是拥有最新版本(我相信这是我目前拥有的版本)。但是正如您指出的那样,我的 Maven“知识”仍然有很多空白,所以我不能完全确定自己!

标签: java maven intellij-idea maven-3 snapshot


【解决方案1】:

如果你的同事都帮不了你,恐怕还有其他隐藏的东西。

不过,让我们试试吧!

在这里,我猜你的resources.properties 是他自己项目的一部分。项目由 Maven 处理并表示为您的一个主要项目中的依赖项。

我还猜测您的主要项目是 WAR(主要是 Web 应用程序、服务、门户),而 JAR 是库、配置等...)

因此,我猜测您的 webapp 将某些库作为 Maven 依赖项引用到特定版本。

也就是说,只要愿景有意义,IntelliJ(和其他 IDE)就可以通过 Maven 轻松处理彼此相关的 JAR 和 WAR 的修改。


注意:版本号末尾有-SNAPSHOT 告诉Maven 不要缓存包。相反,确定的版本号被认为是released,并且仅从缓存中获取。这一点很重要,因为使用SNAPSHOT,您可以发布无限次,并且保证拥有最新版本。

注意:mvn clean install 将包发布到您的本地 Maven 存储库(通常位于 ~/.m2 中)并且仅供您使用。


一般的良好做法是,在 DVCS 的所有开发分支中,将所有您拥有的、经常修改的项目(不要太贪心,这取决于情况)作为 SNAPSHOT。并且在发布期间(Maven 有一个特定的插件)将所有版本更改为最终版本,归因于这个精确的时刻(您永远不知道您是否需要最小版本或主要版本)。 那么,您的代码始终具有您预期的下一个版本的 SNAPSHOT 编号。

最后,我认为在您的情况下,如果您选择将 之一的 pom.xml 更改为 SNAPSHOT,您应该更改根 pom.xml项目对应。

如果此依赖项版本相同,那么您可以在 IntelliJ 中将库添加为 module,IDE 将进行数学运算以确定 Maven dep 和 Java 模块是同一个实体。

我什至不知道这是否对您有所帮助(我什至不确定是否清楚),但我希望它会让您提出更多关于您需要什么的问题。您的同事可能会为您提供更多帮助。

【讨论】:

  • 并不是他们无法提供帮助:我的团队中没有开发人员今天下午在这里,所以我目前真的没有人可以请教。我主要弄清楚你刚才解释的部分内容,如果我没有误读它,我认为部分内容是我实际所做的。我似乎无法弄清楚的是修改文件(例如我试图从库中修改的上述资源.properties),但是将库添加为模块听起来可以解决我的问题。我会尝试在周末进行调查,并按照建议找到一些关于 Maven 的优秀综合书籍!
  • 所以事实证明这或多或少是它,我缺少的一点是他们认为我可以从 SVN 签出项目,但实际上我没有访问权限具体项目。完成后,我只需将其添加为模块,然后使用该本地快照版本作为依赖项。感谢您的回答!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-02-22
  • 2021-02-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-19
  • 2014-09-13
相关资源
最近更新 更多