当前位置: 首页 > 面试题库 >

Maven项目可以有多个父母吗?

傅高逸
2023-03-14
问题内容

我们有Java和Flex项目。当前,我们有1个基本pom,其中包含我们要用于两个项目的配置。问题是:Flex项目会继承配置,例如for
javadocpmdplugins,这是不希望的。

我要清理它并有一个真正的基本pom,然后是a java-base-pom和a flex-base- pom。但是,这在具有Flex部分和Java部分的多模块中如何工作?

我们有自己的应用程序插件,其中使用以下结构:

  • 我的插件
    • 我的插件客户端(flex)
    • 我的插件服务器(java)

my-plugin只是包含一个pom.xmlwith <modules/>部分。我将my- pluginpom.xml用作两者的父项,但是后来我也不能将java base-pom或flex base-pom用作父项。最好的方法是什么?


问题答案:

一个项目只能有一个父级(与C ++中的多重继承不同),但是该父级可以是更大父级层次结构的一部分。正如其他人指出的那样,您可能会遇到以下情况:

基点/
|-flex-base-pom
| |-我的插件客户端
| | `-pom.xml
| `-pom.xml
|-java-base-pom
| |-我的插件服务器
| | `-pom.xml
| `-pom.xml
 `-pom.xml

就是说,我注意到您写道您的实际问题是:

例如,flex项目会继承它们不需要的javadoc和pmd的配置。

您应该使用pluginManagement元素来避免这种情况:

pluginManagement
是在侧面插件中可以看到的元素。插件管理包含插件元素的方式几乎相同,除了不是为该特定项目构建配置插件信息,而是要配置从该继承的项目构建。但是,这仅配置在子级的plugins元素内实际引用的插件。子级有权覆盖pluginManagement定义。

因此,在父pom中,配置您的插件pluginManagement(例如javadoc和pmd),然后plugins在所需子元素的元素中引用它们(仅在my-
plugin-server中)。这样可以解决您当前的问题。



 类似资料:
  • 使用可以用于基于的遗留用例,但也可以测试我们正在迁移的未来用例:。 我是否可以在每次修改POM时实现以下反应器构建?或者,类似的东西?或者,Maven仅仅是这个用例的错误工具吗? 理想情况下,我希望在一个反应器构建中实现所有功能,每个编译并与每个继承的依赖项一起使用。我知道这会使我的Maven repo处于不希望的状态,但至少我可以将反应器构建插入到我的CI,并确保我的构建在依赖平台上运行。 注意

  • 问题内容: 我将GOPATH设置为 我有 并且 我不喜欢在我的root dev文件夹中如何强制使用这个通用的“ go”目录来保存许多不同客户的go项目。 问题答案: 是的,是目录列表(如)。运行以获取详细信息。例如,在Linux上,我有: 我在Windows上有类似的东西。 注意:Linux 用作列表分隔符。Windows 用作分隔符。 如果使用,它将默认为列表中的第一个目录。 运行以检查一切正确

  • 我试图添加依赖到我的maven项目。我想添加Spring引导配置。但是它在父标签中给出了这个错误, 项目构建错误: io.javabrains.springbootquickstart的不可解析父POM: Court-api: 0.0.1-SNAPSHOT:未能找到 org.springframework-boot: spall-boot-starter-父: pom: 1.4.2。https:/

  • 我在最新的带有m2e plugini安装的eclipse中执行了以下操作: > 创建父maven项目 右键单击maven项目,在父项目下创建2个maven模块注意:现在我的eclipse中有3个项目 然后通过svn分享我的项目(例如超文本传输协议:xxx.xxx.myproject/trunk) 然后我的队友试图通过执行以下操作来检查这个项目 选择导入-- 现在我们的问题是: 签出项目后,在他的e

  • 我有3个maven项目。项目1,项目2 为此,我在项目2 pom.xml文件中添加了这个 我的pom。Project3的xml是- 在项目3中,我添加了testng。xml文件来运行测试。现在如果我运行这个测试。xml文件,那么我所有的测试用例都成功运行了。如果我尝试使用maven测试运行测试用例,那么它会失败。 我已经在下面的pom文件中包含了testng.xml文件,以便使用maven运行te