Maven不同的依赖关系?

时间:2012-01-10 15:42:53

标签: maven dependencies repository maven-plugin maven-3

我想知道是否有可能阻止Maven 3.0下载旧库并仅使用不同的版本。 (更喜欢本地存储和我手动下载Javadoc和源代码的版本)

例如使用JUnit 3.8.2,4.8.1和最新的4.x,但从不< 3.8.1,4.5,4.6-Snapshot等。

背景:我的第一个驱动器(SSD)上的实际项目和本地存储空间有限。
如果我尝试maven原型开始一个新项目(通常用于学习新主题),maven就像下载即junit 4.5 但我不喜欢手动编辑pom查看我的本地版本,考虑兼容性 我不喜欢一次又一次地清除和下载首选的依赖项。

是否有任何工具,插件,设置或最佳做法可以实现这一目标?

到目前为止我尝试了什么......

  • going Offline无法为doc + src手动下载我首选的IDE商品     => “无法解决依赖关系......存储库系统处于脱机状态,但工件......在本地存储库中不可用。”

  • 现在的最佳做法是(netbeans)在上下文菜单中“删除 dependecy“on project and
    ”Add as Dependecy ..“from local repository 树。 (如screenshots?)

2 个答案:

答案 0 :(得分:1)

在阅读了很多新内容后,我终于同意Spencer Kormos

  

如果您正在使用原型,那么您无能为力......

现在最佳做法是:

小解决方案
  - 使用原型制作pom   - 在pom的顶部添加<dependencyManagement../>来描述首选的依赖关系   - 添加<scope>provided</scope>
  - 可选地,您可以添加<exclusions.. />
  - 删除生成的pom中有冲突的<version../>标记   - 我将用于复制/粘贴其他项目的<dependencyManagement../>部分

更好的解决方案(希望如此)?
  - 使用<dependencyManagement../>首选工件创建父/主pom   - 使用from archetype生成的pom作为模块或子项目
  - 使用主pom将依赖关系分组为<packaging>pom</packaging>

我最后一天阅读的一些内容只允许两个链接:-(
Maven-Model(在project下查找dependencyManagement)
Maven: The Complete Reference, Chapter 3.6.1. Grouping Dependencies

答案 1 :(得分:0)

如果您在pom.xml中指定版本(作为依赖项,或从依赖项中排除旧版本),则不应下载除指定(或排除)之外的任何其他jar。