我可以在 Eclipse Spring Boot Dashoard 中指定 Maven 配置文件来通过运行配置更改依赖项吗?

问题描述 投票:0回答:1

我有一个 Spring Boot Maven Web 应用程序 (

app.war
),它依赖于库
lib.jar
lib.jar
发布有两个分类器:

  1. lib-release.jar
    ,被 proguard 混淆了
  2. lib-debug.jar
    ,没有混淆并且有额外的记录器

我希望能够在 启动仪表板运行配置上指定要使用哪个分类器作为属性/配置,而不是编辑 POM,这是我能够让它工作的唯一方法。这可能吗?

目前,

pom.xml
被配置为默认使用发布jar,以便使用混淆版本,但是我们有一个
debug
配置文件,我们可以在打包时使用它来与调试库创建战争,例如:
mvn clean package -Pdebug 
。示例:

<properties>
    <lib.classifier>release<lib.classifier>
<properties> 
...
<profiles>
  <profile>
    <id>debug</id>
    <properties>
      <lib.classifier>debug</lib.classifier>
    </properties>
  </profile>
</profiles>
...
<dependencies>
  <dependency>
    <groupId>libgrp</groupId>
    <artifactId>lib</artifactId>
    <version>1.0</version>
    <classifier>${lib.classifier}</classifier>
  </dependency>
</dependencies>

这对于打包来说效果很好,但是 eclipse 中的“启动仪表板”似乎只使用默认属性,并且忽略了我使用参数切换 Maven 配置文件的所有尝试。启动仪表板在触发时必须解析依赖项,但是有没有办法可以指定 Maven 属性,甚至只是显式设置该属性而不修改

pom.xml
?我尝试过指定
Pdebug
-Dlib.classifier=debug
甚至
--lib.classifier=debug
,这是一个不太可能的选择,因为这只是一个 Spring 风格的属性而不是 Maven。

附加信息:

  • 该应用程序使用 Spring Boot 1.5.14.RELEASE,它很旧,但由于我们必须运行的环境而强加给我们
spring-boot eclipse maven
1个回答
0
投票

我认为答案是肯定的。重要的是要记住,您实际上有 2 组不同的配置文件在使用。 Maven 配置文件在 构建时发挥作用,而 Spring 配置文件在运行时发挥作用。

您绝对可以使用 maven 配置文件在构建时自定义 pom 的依赖项和其他方面。您的构建作业(无论运行 mvn 命令)都需要调用适当的 Maven 配置文件来构建(使用 mvn -P)具有所需的依赖项。有关如何使用特定于配置文件的依赖项、插件等的信息,请参阅 maven 构建配置文件文档

此外,Spring 配置文件可用于更新

已构建工件运行时行为。 Spring 配置文件文档 描述了如何使用选择特定于配置文件的 bean 和配置的配置文件进行编码并启动 Spring 应用程序。当构建一个必须测试并部署到不同环境(开发、登台、质量保证、生产等)的工件时,这非常有用。在每种情况下,都有一个编译的工件(jar、war、ear),它足够智能,可以使用活动的 spring 配置文件为所需的环境配置自身。

© www.soinside.com 2019 - 2024. All rights reserved.