2012-07-20 55 views
0

Maven的多模块插件DOC states明确:Maven的模块,而不是复制文件夹

模块是定期Maven项目必须的子目录下定位成父项目可以很容易地检索它们。

事情是我不想在子目录下找到它们。 我只想指向一些可用于编译依赖关系的文件路径。(突出显示,因为这实际上是个问题)。

我想要的原因很简单:我只是不想在一个文件夹中混淆两个完全不同的范例 - maven模块和git子模块。此外,我不想在项目中有任何类型的git依赖项。

解号0,即,创建simlinks并把它们付诸.gitignore不计)

+0

恐怕_must位于子目录下意味着没有办法改变它。如果可能的话,你必须配置主要的pom来声明孩子在哪里以及孩子在哪里是父母。 maven中没有这样的东西。 – poussma 2012-07-20 14:29:38

+0

@ ZNK-M,但为什么儿童项目甚至应该知道父母的任何东西? (对不起,如果这个问题听起来很愚蠢,可能是我不明白)。此外,从反应堆项目的角度来看,有什么不同:通过检查子文件夹或通过检查路径获取模块? – shabunc 2012-07-20 14:33:56

+0

为什么孩子需要知道父母?为了获得默认的插件配置,通用属性,工件版本......为什么在maven中他们认为它必须位于直接子文件夹中......并且不能配置为与其他所有内容相反......这样,不知道。但该组织允许用户使用$ {basedir} /../ my-module/...轻松地复制/访问另一个模块的资源(即使这可能不是一种好的做法)... – poussma 2012-07-20 14:48:44

回答

0

最佳解决方案是创建单个git仓库内的目录结构和在GIT中不使用的子模块。这将导致这样的结构:

root (pom.xml) 
    +-- module1 (pom.xml) 
     +-- src/main/java 
     +-- src/test/java 
    +-- module2 (pom.xml) 
     +-- src/main/java 
     +-- src/test/java 
    +-- module3 (pom.xml) 
     +-- src/main/java 
     +-- src/test/java 

上述结构将GIT中版本控制与所述根文件夹,它包括子模块,以及下放置。在Git中不是子模块等。 如果你在这种情况下有依赖关系,你必须使用模块依赖,这是Maven的最佳实践。

+0

但在单个存储库中保持项目的完全独立部分的意义何在?整个想法是,甚至开发团队也可能不同,尽管这些模块是在公司内部开发的。 – shabunc 2012-07-23 08:44:09

+0

如果这些模块是独立的,则不应使用多模块构建。简单地使用独立的maven项目和他们自己的git仓库。 – khmarbaise 2012-07-23 08:48:11

+0

在这种情况下,如果两个模块都是在单个公司开发的,我应该编译模块A(如果它依赖于模块B的HEAD修订版),那么也要编译此模块。在发展阶段,这并不罕见。 – shabunc 2012-07-23 08:51:09

相关问题