在目标/类中找到依赖项而不是本地存储库?

时间:2010-01-07 14:22:56

标签: maven-2 compilation

总结:我正在寻找一种方法来指示maven在目标/类中搜索依赖项,而不是在本地存储库中搜索jar

假设我有2个模块,A和B,其中A依赖于B.两者都列在模块S中。通常我需要在S中运行'mvn install'我正在寻找一种运行'mvn compile的方法'这样当编译A时,它的类路径将包含../B/target/classes而不是〜/ .m2 / repository / com / company / b / 1.0 / b-1.0.jar。

(我的理由是我可以连续编译而无需经过打包和安装,或者更确切地说,在多个模块上使用'mvn scala:cc')

2 个答案:

答案 0 :(得分:2)

我不认为没有可怕的黑客行为这是可能的,这不是maven的工作方式。 Maven使用二进制依赖项并需要本地存储库来解决它们。因此,处理此问题的方法是在所有模块上启动反应堆构建。为了以防万一,请查看Maven Tips and Tricks: Advanced Reactor Options

但是,在开发过程中,您是否只能在IDE中导入所有项目并使用“项目引用”(即将项目配置为依赖于源代码而不是JAR),就像大多数Java开发人员一样?这是避免必须install工件“看到”修改的常用方法。

如果这是不可能的,如果您真的不想将install工件放入本地存储库,那么您必须将代码移动到一个独特的模块中。

答案 1 :(得分:2)

我知道这很烦人。在这里帮助我肯定是IDE支持。完成maven项目导入后,eclipse和IntelliJ很聪明地收集所有依赖项。甚至交叉模块依赖项都是实时编译的。

相关问题