Maven构建:如何解决工作区工件而不将它们安装到repo并且不使用m2eclipse

时间:2012-10-21 16:24:15

标签: maven dependencies resolution

我在Eclipse Indigo中使用了m2eclipse,现在我试图在没有Eclipse和没有m2eclipse插件的情况下从命令行使用Maven。 m2eclipse可以很好地解决工作区中的工件而无需将它们安装到存储库中,这个功能允许我在Eclipse中运行我的构建而没有问题,但在CMD中我遇到了丢失jar的错误。

[警告]缺少AAA_7.1.1的POM:ConfigurationView:jar:0.0.1-SNAPSHOT,没有可用的依赖项信息 [警告] AAA_7.1.1的POM:Bean:jar:0.0.1-SNAPSHOT丢失,没有可用的依赖项信息 [INFO] ----------------------------------------------- ------------------------- [INFO]建立失败 [错误]无法在项目客户端上执行目标:无法解析项目AAA_7.1.1的依赖项:客户端:pom:0.0.1-SNAPSHOT:.......

我们的目标是尽可能保持回购清洁,这就是为什么我希望让它以这种方式运作。 所以我的问题是如何在不将它们安装到repo的情况下解决依赖关系以及它是否可能?

2 个答案:

答案 0 :(得分:1)

IMO,使用Maven的标准方法是mvn clean install 但如果我很清楚您的问题,您希望尽可能保持本地存储库的清洁? 一种方法是使用多个本地存储库,但我认为目前不可能(Maven 3.0)。

但是,您可以将备用本地仓库与-Dmaven.repo.local或备用设置与mvn --settings一起使用(请参阅answer)。

另见:

答案 1 :(得分:1)

基本上你需要一个maven构建,其中reactor包含你所有的97​​个模块。要做到这一点:
创建一个父项,其中包含所有这些97个模块作为子项(如果您已经是多模块,则只需将已存在的父项配置为此新父项的子项)。然后开始你的新父母的构建。约定通常是将父级放在上层目录中。但您也可以使用包含..的相对路径作为模块位置规范。也不需要从现有父项中的新父项继承。所以你不需要改变任何现有的poms。