将属性传递给 maven 子模块,该子模块没有当前模块作为父模块

     2023-02-27     286

关键词:

【中文标题】将属性传递给 maven 子模块,该子模块没有当前模块作为父模块【英文标题】:Pass properties to maven sub-module, which does not have current module as parent 【发布时间】:2018-08-31 12:32:30 【问题描述】:

我有几个 maven 项目:

commons-lib(简单的 Java 项目) 用户服务(Spring-Boot 驱动的项目) 复合服务(Spring-Boot 驱动的项目) 前端服务(Spring-Boot-/Angular2 驱动的项目) all-services-parent(构建其他一切的父项目

虽然 commons-lib 不太可能单独发布,但所有其他项目(父项目除外)可能会单独发布。

如果列表中的前四个是第五个的子模块,它们是否必须将其父级设置为父级(例如 all-services-parent)作为回报?

由于我想在用户服务和复合服务中包含 commons-lib,我知道我必须先构建它。但是:上面的每个服务都可以单独发布——那么哪种建筑结构最适合我的需要?

会是:

-- all-services-parent
   |-- (maven sub-module) commons-lib
   |-- (maven sub-module) user-service
   |-- (maven sub-module) composite-service
   |-- (maven sub-module) frontend-service

或:

-- all-services-parent
   |-- user-service-parent
       |-- (maven sub-module) commons-lib
       |-- (maven sub-module) user-service
   |-- composite-service-parent
       |-- (maven sub-module) commons-lib
       |-- (maven sub-module) composite-service
   |-- frontend-service

第二个构建结构允许我通过在 all-services-parent 上调用“mvn clean install”来构建所有 JAR,同时仍然能够通过在相应父级上调用“mvn clean install”来正确构建单独的项目,但是真的是这样吗?

在我当前的设置中,我尝试使用第一个建筑结构,但因为例如复合服务将“spring-boot-starter-parent”设置为其父级,我无法访问“all-services-parent”-模块中的属性或任何内容。

我阅读了Maven parent pom vs modules pom(一个起初看起来很有希望的问题),但它并没有像我希望的那样适用于我的案例。

【问题讨论】:

【参考方案1】:

尝试导入spring boot parent,而不是像这样继承它:

<dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-parent</artifactId>
                <version>1.5.9.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
       </dependencies>
</dependencyManagement>

【讨论】:

但是之后我会怎么做呢?我是否应该始终将模块父级设置为子模块的 pom.xml 中的父级? 看来这个建议最接近解决我的问题。我决定使用第一个构建结构并使用配置文件,这些配置文件默认处于活动状态,但也允许构建单独的模块组。我仍然不知道如何将属性传递给子模块,但我绕过了这个需求。此外,在例如使用变量似乎不是一个好主意。 pom.xml 中的版本或组标签,因为这会不必要地将模块捆绑在一起。【参考方案2】:

父模块属性文件可以被子模块访问,但子模块属性文件不能访问其他子模块。 您需要为每个子模块做单独的属性文件。

【讨论】:

我知道(子模块无法访问其他子模块的属性)。就我而言,我只是不确定我应该尝试设置第一个建筑结构还是第二个(请参阅我帖子中的前置标签)。【参考方案3】:

在你的 pom.xml 文件中添加这样的子模块并给出它的绝对路径。 这应该是工作

<modules>
        <module>../TestWeb</module>
        <module>../TestBusiness</module>
        <module>../MsgScheduler</module>
        <module>../Connector</module>                   
</modules>

【讨论】:

我已经完成了 - 我确实阅读了手册。只是我无法继承属性,因为我认为我无法将父级调整为除了 spring-boot-starter-parent 之外的任何其他内容,但显然我可以(参见 Sandor Juhos 的回复)。

Terraform - 无法将字符串变量传递给子模块

】Terraform-无法将字符串变量传递给子模块【英文标题】:Terraform-Unabletopassstringvariabletochildmodule【发布时间】:2020-12-1016:39:06【问题描述】:我有许多嵌套模块的terraform设置。简化后看起来像这样├──modules│├──sec-groups│... 查看详情

传递给子模块的 terraform 提供程序不起作用

】传递给子模块的terraform提供程序不起作用【英文标题】:terrafromproviderspasseddowntosubmoduledoesn\'twork【发布时间】:2021-03-2910:02:03【问题描述】:我有一个模块调用另一个模块,我将kubernetes提供程序从主模块传递给第一个模块,... 查看详情

如何使用 React 中的 CSS 模块将多个类动态传递给子组件

】如何使用React中的CSS模块将多个类动态传递给子组件【英文标题】:HowtodynamicallypassmultipleclassestochildcomponentusingCSSmodulesinReact【发布时间】:2021-11-1902:52:04【问题描述】:我是React.js的新手。我正在使用CSS模块进行样式设置,并... 查看详情

如果它们来自我父母的其他子模块,我应该依赖 Maven 中的传递依赖吗?

...如果它们来自我父母的其他子模块,我应该依赖Maven中的传递依赖吗?【英文标题】:ShouldIrelyontransitivedependenciesinMaveniftheycomefromothersub-moduleofmyparent?【发布时间】:2018-04-2522:23:23【问题描述】:假设我们正在处理mortgage子模块,... 查看详情

如何将 BuildConfig 值传递给依赖模块?

】如何将BuildConfig值传递给依赖模块?【英文标题】:HowtopassBuildConfigvaluestodependencymodule?【发布时间】:2017-08-0707:28:20【问题描述】:我在App模块的BuildConfig中有一些配置值。我想将这些值传递给MyLib的BuildConfig,它是App模块的依... 查看详情

带有 pom 包装的 Maven 子模块?

】带有pom包装的Maven子模块?【英文标题】:Mavensubmodulewithpompackaging?【发布时间】:2015-11-1507:05:56【问题描述】:有一个maven子模块(它本身没有任何子模块)有一个pom包装有意义吗?在某些情况下这样做有什么用吗?如果不是... 查看详情

将字符串传递给模块“一次”

】将字符串传递给模块“一次”【英文标题】:Passingastringtomodule"once"【发布时间】:2015-04-1816:48:58【问题描述】:我的问题很简单:我只需要将一个字符串(路径和文件名)传递给一个模块一次,以供该模块中的函数使... 查看详情

获取子模块[多模块项目]中父POM中定义的属性

】获取子模块[多模块项目]中父POM中定义的属性【英文标题】:GettingthepropertiesdefinedintheparentPOMinsidethechildmodules[multi-moduleprojects]【发布时间】:2013-10-1710:18:06【问题描述】:我在将属性从[多模块项目的]超级pom传递到子pom时遇到... 查看详情

从子文件夹导入模块并将该子文件夹中的文件与模块一起使用[重复]

】从子文件夹导入模块并将该子文件夹中的文件与模块一起使用[重复]【英文标题】:Importamodulefromasubfolderandusefilesfromthatsubfolderwiththemodule[duplicate]【发布时间】:2019-11-2405:04:00【问题描述】:示例项目:|-main.py|-Module|-__init__.py|-w... 查看详情

如何将本地 Maven m2 作为属性传递给 Gradle?

】如何将本地Mavenm2作为属性传递给Gradle?【英文标题】:HowcanyoupassinalocalMavenm2toGradleasaproperty?【发布时间】:2020-11-0506:52:11【问题描述】:我目前正在尝试通过JenkinsFreestyle项目构建我的Android应用程序。我能够在AndroidStudio中成... 查看详情

将索引宏传递给已编译的模块

】将索引宏传递给已编译的模块【英文标题】:Passinganindexmacrotocompiledmodules【发布时间】:2015-03-2823:18:00【问题描述】:我使用makefile编译我的项目,该文件的表达式为g++-ca.cppb.cppc.cpp有没有简单的方法来定义一个会增加每个文... 查看详情

如何在 Maven2 模块之间共享过滤器文件?

...:我有一个多模块项目,我想定义一个过滤器文件,它将属性应用于所有子模块。例如,我想有以下结构:父母-filter.properties-模块1-资源1-模块2-资源2这样当我构建父模块时,它会在构建子模块时将过滤器应用于资源1和资源2。... 查看详情

如何使用 Maven 发布不同版本号的子模块?

】如何使用Maven发布不同版本号的子模块?【英文标题】:HowtoreleasesubmoduleswithdifferentversionnumberswithMaven?【发布时间】:2013-08-2007:39:03【问题描述】:在我当前的maven项目中,我有很多子模块。我需要构建一个版本并将其部署到我... 查看详情

如何在 node.js 子进程模块中将消息和标准输出从子进程传递给父进程?

】如何在node.js子进程模块中将消息和标准输出从子进程传递给父进程?【英文标题】:Howtopassmessagesaswellasstdoutfromchildtoparentinnode.jschildprocessmodule?【发布时间】:2016-02-0209:35:57【问题描述】:我遇到了子进程模块的问题,特别是c... 查看详情

在父模块上执行 Maven 插件目标,但不在子模块上

】在父模块上执行Maven插件目标,但不在子模块上【英文标题】:ExecuteMavenplugingoalonparentmodule,butnotonchildren【发布时间】:2010-12-1220:33:18【问题描述】:我们有一个多模块maven项目,它使用定义buildnumber-maven-plugin的配置文件来增加... 查看详情

应该将啥模块实例传递给 CreateCursor 方法?

】应该将啥模块实例传递给CreateCursor方法?【英文标题】:WhatmoduleinstanceshouldbepassedtoCreateCursormethod?应该将什么模块实例传递给CreateCursor方法?【发布时间】:2016-03-1120:17:13【问题描述】:CreateCursor函数将HINSTANCE作为第一个参数... 查看详情

Bamboo - SonarQube 多模块 maven 项目跳过子模块

】Bamboo-SonarQube多模块maven项目跳过子模块【英文标题】:Bamboo-SonarQubemultimodulemavenprojectskipthechildmodule【发布时间】:2017-03-3106:02:49【问题描述】:我在Bamboo中创建了SonarQube任务。我有一个包含4个模块的父pom。在运行任务时它会... 查看详情

“没有这样的模块”,同时从子模块中引用一个 pod

】“没有这样的模块”,同时从子模块中引用一个pod【英文标题】:\'Nosuchmodule\'whilereferringapodfromSubmodule【发布时间】:2017-03-0608:58:01【问题描述】:我在我的swift项目中集成了子模块,并且该子模块之前使用Carthage。现在我从迦... 查看详情