【问题标题】:Maven compile dependency instead of taking it out of the local repoMaven 编译依赖而不是将其从本地 repo 中取出
【发布时间】:2013-09-19 11:43:21
【问题描述】:

很抱歉,对于我目前工作的复杂环境(1k+ 应用程序,其中大多数是 Java EE),我不知道 maven 是否足够好。我仍然尝试描述我要归档的内容:

0.) 有一个公司框架将 Java EE World 抽象了一点,并用于所有 Java EE 组件

1.) 我检查了我正在使用的 Java EE 组件的 maven 项目 在构建过程中,它会从公司的存储库中下载其他组件的依赖项,并将其存储在我的本地存储库中以进行编译。所以我可以在我的本地仓库中看到公司框架的 jar 文件。

2.) 我现在想为本地测试更改一些框架功能,因此我从另一个 SVN 存储库中检查了它们的源代码。我进行了更改并使用 maven “全新安装”构建了该框架组件。

3.) 我也重建了我正在使用的组件。

在 Eclipse 中,我现在可以单击框架类方法之一,它会打开相应的源代码。但这只是因为本地 repo 也包含任何依赖项的源 jars。所以在我的编辑器中,我可以看到这个源来自我本地仓库中框架的 jar,我无法更改任何内容。

有人可以给我一个提示,我可以如何归档以下内容:

  • 我可以对框架进行更改(并使用“全新安装”构建框架 jar)
  • 我可以构建我的组件,它使用上面编译的框架 jar,而不是本地存储库中的“旧”。

我现在将开始阅读整个 maven 文档和每个部分(我从 1 年开始尝试理解依赖管理,但仍然不明白)但如果你能帮助我,我将不胜感激位在这里。

【问题讨论】:

    标签: java svn maven dependencies local


    【解决方案1】:

    我不知道 Eclipse 是如何管理 maven 依赖的,但是

    在 IntelliJ IDEA 中这很简单 - 如果项目中存在 maven 依赖项,则 IDEA 会使用它而不是来自本地 repo 的依赖项。

    因此,如果您想编辑框架源代码并立即使用此更改 - 我认为该框架应该在您的 Eclipse 工作区中。并且您在 Eclipse 中的模块应该直接引用框架工件——而不是通过 Maven 依赖机制。

    我认为这是 Eclipse Maven 插件的责任。你有为 Eclipse 安装的 Maven 插件吗? (例如 M2Eclipse)

    【讨论】:

    • 非常感谢您的回答,正如我理解的那样,我将从 pom 组件中删除依赖项,并告诉 eclipse“那些(框架)项目”是我的组件的依赖项。我会试一试的。
    • 不要从 POM 中删除依赖项。 Maven 构建应始终独立于您使用的 IDE 工作。你试过安装 M2Eclipse 吗?
    • 我发现使用的框架库版本为 5.0.4,我构建的版本也位于本地存储库中,但版本为 5.0.3-Snapshot。我现在已经在我的 pom 中声明了对那个版本(5.0.3)的依赖,希望重建会使用它。 (因为我无法立即从 Eclipse 中构建组件以生成正确的 EAR 以部署用于本地测试)
    • 尽管它已经使用了 M2Eclipse 插件,但我会重新检查。
    • OK M2Eclipse 插件在那里。我认为您的回答使我走上了正轨。我在本地存储库中看到了框架库,但它们的内部版本号(5.0.3-Snapshot)比那里的其他库低(它们都是 5.0.4 或更高版本)。我在依赖版本标签中更改了它,现在可以重建......希望这会使我的组件中的更改生效。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 2016-10-28
    • 1970-01-01
    • 2013-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多