我有一个带有一些配置文件的pom。对于这些配置文件之一,我想添加一个服务器端测试代码模块,以便在某些javascript集成测试中查询数据库。
我不希望发布此代码,因为它会膨胀,并且可能会引入一些安全问题。
我们当前的设置是基本上有2个主要配置文件,它们指定了自己的不同模块列表以及相当长的属性列表。然后,我们还有一个缩小配置文件,可以针对某些版本运行。
这可以通过使用-P标志并提供多个来实现:例如 -P firstMainProfile,Minification
新的配置文件仅需要添加一个模块,但是取决于其他一些模块和某些属性。我希望我能够做到这一点:
<profile>
<id>Test</id>
<modules>
<module>TestCode</module>
</modules>
</profile>
然后在具有它所依赖的模块的那个之后运行它。例如
-P firstMainProfile,Test,Minification
但是,这不起作用。在尝试构建时,它抱怨无法找到依赖项。
我可以复制整个配置文件并添加此额外的模块,但这会引起我的维护麻烦,并且由于要接受/集成,我希望它的设置方式与其他方式完全相同。
请帮忙!我可以使用个人资料来完成这项工作吗?我是否需要对子pom进行操作以列出依赖项?当前看起来像这样:
<parent>
<artifactId>artifact</artifactId>
<groupId>something</groupId>
<version>1.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>TestCode</artifactId>
更新资料
我以为我已经解决了这个问题,但实际上我所做的就是将问题进一步推向前进。该项目有一个Web模块,据我了解,它基本上就是在说战争文件中包含的内容。直到我将其添加为该项目的依赖项之后,我的新模块才投入使用。但是,即使我没有明确地构建它,现在也要构建并交付新模块,这对我来说没有意义,而且与我想要的相反。
它似乎在构建时就存储在我的m2目录中,因此即使我不构建它也会从那里被拉出。
所以现在看来我需要复制Web项目来更改要部署的内容?有什么方法可以使依赖成为条件,以避免必须这样做吗?
需要执行一系列很长的步骤。
在新模块中添加对其他模块的依赖
我想当我将导入添加到另一个项目的类中时,我认为IDEA会整理项目的依赖关系。
我需要将其添加到我的新pom中:
<dependencies>
<dependency>
<groupId>group</groupId>
<artifactId>myOtherProject</artifactId>
</dependency>
</dependencies>
将有关依赖项的元信息添加到父pom
我还需要在依赖项管理的父pom中添加一个依赖项,以定义其他版本的版本。
向部署项目添加“依赖”
然后,我还需要向由特定配置文件激活的webapp / war部署pom添加一个依赖项(这似乎是在maven中具有条件的唯一方法?)。
避免重复
幸运的是,似乎依赖项列表是可加的,因此,如果您执行以下操作:
<dependencies>
a
b
c
</dependencies>
<profiles>
<profile>
<id>Test</id>
<dependencies>
d
</dependencies>
</profile>
</profiles>
a,b,c,d
如果使用配置文件“ test”,则最终会导致依赖性。因此,您不必全部复制粘贴并定义2个配置文件即可添加一个以上的依赖项。
当您在Maven中使用其他列表时,我也似乎在使用相同的加性原理。
我正在合并一组基本模块(来自1个配置文件)和我的测试模块,似乎可以找出正确的构建顺序。
我的新个人资料如下所示。
<profile>
<id>Test</id>
<modules>
<module>TestCode</module>
</modules>
<properties>
<environment>test</environment>
</properties>
</profile>
因此,我只指定差异(只要它们是可加的!)。
花了很长时间才弄清楚,但即使目前尚不清楚发生了什么,我也对该解决方案感到满意。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句