我有一个项目,要求项目特定的设置位于全局mvn settings.xml
中。 (原因请参见底部。)
这对于那个项目来说很好用,但是当我在另一个项目上工作时,我不想应用镜像。
我的目录结构看起来像这样:
projects
projA
comp1
comp2
sub2a
sub2b
projb
comp1
comp2
comp3
sub3a
sub3b
如果我从~/projects/projA
或任何子目录构建,我希望<mirror>
处于活动状态。如果我是根据~/projects/projB
树构建的,则我不希望它处于活动状态。
我可以通过将其放在配置文件中并基于user.dir
的值激活配置文件来完成这项工作。但是,我(我认为)需要针对每个子目录重复此操作,因为属性激活使用完全匹配。在我的实际系统中,有69个子目录,因此有很多重复项。另外,随着项目的发展,可能会出现更多的子目录,我想使它起作用,而不是要求我注意新目录的存在并记住将其添加到我的settings.xml
中。
是否可以根据我所在的目录树来激活配置文件?
为什么在全局设置中需要项目设置
我正在使用tiles plugin,它在解析大量pom之前会修改pom的父级。磁贴存储在本地的,特定于项目的服务器上,因此我需要为插件创建<mirror>
才能找到磁贴。 <mirror>
元素无法放入pom,因此它必须位于我的全局settings.xml
中。有more details here