繁体   English   中英

从项目中更改 maven 配置文件

[英]Change maven profile from within project

我想从 maven 项目中更改 maven 项目的活动配置文件。

java 项目有 3 个具有主要方法的类,它们一个一个地执行,所有这些都需要不同的依赖集。

我想用不同的 maven 配置文件运行这些类。

例如,我的项目 project1 是 maven 项目,并被 mvn clean package spring-boot:run 命令调用。

当控件到达 project1 时,它会一个一个地执行 java 类。

我的要求是,当 ClassA 运行时,它应该将当前的 maven 配置文件更改为 profile1(重新编译同一个项目是可以的,性能不是优先级)。 同样,当 ClassB 被调用时,它应该将当前的 maven 配置文件更改为 Profile2。 (注意这些类是使用反射从目录中动态选择的,只有 class 会知道它支持什么配置文件)

有什么办法 maven 在运行时允许这样做。 如果不是什么是实现这一目标的最佳方法。

maven 配置文件不是为此类任务设计的,您实际需要做的是为每个 class 设置不同的执行:

...
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
    <execution>
        <id>run-clsa</id>
        <goals>
            <goal>run</goal>
        </goals>
        <phase>none</phase>
        <configuration>
            <mainClass>ClassA</mainClass>
        </configuration>
    </execution>
    <execution>
        <id>run-clsb</id>
        <goals>
            <goal>run</goal>
        </goals>
        <phase>none</phase>
        <configuration>
            <mainClass>ClassB</mainClass>
        </configuration>
    </execution>
</executions>
...

并以下列方式运行:

mvn clean package spring-boot:run@run-clsa
mvn clean package spring-boot:run@run-clsb

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM