当前位置: 首页 > 知识库问答 >
问题:

注入新的参数/属性值到模块中的maven配置文件

喻高寒
2023-03-14

我有主pom。xml我喜欢从我正在使用的主mvn命令行cli更改,并更改:

<argument>${docker.image}</argument>

参数仅在子模块中:module_y配置文件不module_x

这是我现在执行的命令:

mvn清洁安装-Ddocker_build=构建

<artifactId>foo</artifactId>
<version>b1</version>
<packaging>pom</packaging>

 
 <properties>
        <docker.image>www.repo.org:8000/${project.artifactId}:${project.version}</docker.image>      
 </properties>
 
 <modules>
        <module>module_x</module>
        <module>module_y</module>       
 </modules>

这是module_xmodule_y

<profiles>
        <profile>
       
            <activation>
                <property>
                    <name>docker_build</name>
                    <value>build</value>
                </property>
                <file>
                    <exists>Dockerfile</exists>
                </file>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>exec-maven-plugin</artifactId>
                        <version>1.6.0</version>
                        <executions>
                            <execution>           
                                <phase>install</phase>
                                <configuration>
                                    <executable>docker</executable>
                                    <arguments>
                                        <argument>build</argument>
                                        <argument>-f</argument>
                                        <argument>${project.basedir}/Dockerfile</argument>
                                        <argument>-t</argument>
                                        <argument>${docker.image}</argument>
                                        <argument>.</argument>
                                    </arguments>
                                </configuration>
                                <goals>
                                    <goal>exec</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
</profiles>

简而言之,如何从主mvn运行中仅更改概要文件docker_内置模块_y中的属性值${docker.image}?

共有1个答案

姜磊
2023-03-14

如果无法更改POM,则无法执行此操作。

唯一可能的方法是分别构建模块(通过使用-pl module_x-am或类似的方法),并在这两种情况下使用不同的命令行参数。

 类似资料:
  • 问题内容: 有点卡在这里。我有一个带有3个配置文件的pom。Theese配置文件具有不同的版本名称。我要在构建特定配置文件时将该版本名称注入属性文件。 我的个人资料: 和filter.properties看起来像这样: 怎么做?我通过命令构建项目: 问题答案: 您需要做的是在POM文件的部分中添加一个新部分。 像这样: 这将在指定文件的指定文件夹()内部查找,并在遇到定义的变量时更改文件。 因此,

  • 我们有一个多模块maven项目,它有不同的平台可以运行,比如JBoss 4和JBoss 7。我们指定属性,然后将其用作工件的分类器,以及子模块中特定于平台的概要文件的激活,如: 在这些概要文件中,我们指定了提供的依赖项的版本。例如,我们进口jboss父pom: 因此,当我们将属性指定为命令行参数()时,它可以正常工作。 但是当属性在

  • 我在Ubuntu18.04上使用Maven 3.6.0和OpenJDK8(也在Alpine Linux上测试)。 我有一个在我的项目的根,包括我的子模块: 在文件夹中,有一个配置文件,我想根据传递给可执行文件的属性激活该配置文件: 然后我执行mvn开始构建,但配置文件从未激活: 如果我运行从我的项目的根,配置文件永远不会激活,永远不会运行 如果我运行从我的项目的根,配置文件永远不会运行。 我也尝试

  • 我想在maven构建期间更改不同属性的值。Maven根据配置文件更改文件中的值,我也尝试了很多其他方法,但它从来都不起作用,我不明白为什么... 这是我的pom.xml 我有一个基于maven的项目,下面是src/main/resources下名为front-config.properties的文件:

  • 问题内容: 我正在研究一个多模块Maven项目,其结构如下: war模块取决于jar模块,并将打包后将jar工件添加到webapp的lib目录中。 war模块和jar模块都使用Apache log4j进行日志记录,并共享相同的log4j配置文件(log4j.xml),该文件当前位于jar模块项目中。并且此log4j.xml将打包到jar- module.jar文件中,但是,我想将其放入war包中而

  • 问题内容: 我有一堆Spring bean,它们是通过注释从类路径中拾取的,例如 我想将app.properites的属性之一注入到上面显示的bean中。我不能简单地做这样的事情 因为PersonDaoImpl在Spring XML文件中没有功能(它是通过注释从类路径中拾取的)。我有以下内容: 但是我不清楚我如何从中访问我感兴趣的财产? 问题答案: 你可以在Spring 3中使用EL支持进行此操作