gpt4 book ai didi

maven - 在使用 Visual Studio Code 调试 spring boot 应用程序时,如何指定要使用的 maven 配置文件名称?

转载 作者:行者123 更新时间:2023-12-05 04:50:54 24 4
gpt4 key购买 nike

这很可能是 this question 的副本,但那里的答案不起作用。

在我的 POM 文件中,我定义了几个与此类似的配置文件:

<profiles>
<profile>
<id>dev</id>
<properties>
<activated-profile>dev</activated-profile>
</properties>
</profile>
...
</profiles>

activated-profileapplication.properties 文件中用来告诉 spring boot 使用什么配置文件的属性:

...
spring.profiles.active=@activated-profile@
...

如果我在 cmd 提示符下运行 mvn clean install package spring-boot:repackage -Pdev,我可以在 cmd 提示符窗口中看到 以下配置文件处于事件状态:dev,表明正确的配置文件处于事件状态。

如果我尝试从 Visual Studio Code 启动和调试应用程序,我会在终端中看到 The following profiles are active: @activated-profile@

我尝试在 launch.json 中设置 args:

{
...
"args": ["activated-profile=dev"],
"vmArgs": ["Dactivated-profile=dev"],
...
}

我还尝试在 settings.json 中为 maven 设置一个自定义环境变量,以及问题中的答案,您肯定会告诉我我重复了:

{
...
"maven.executable.options": "-Pdev",
"maven.terminal.customEnv": [{
"environmentVariable": "activated-profile", "value": "dev"
}],
...
}

我还尝试在 activated-profile 前添加 ---D- D--D,以及将 activated-profile 重命名为 activatedprofile 以防连字符以某种方式搞乱。

没有任何作用。

让 VS Code 开始调试的唯一方法是在 POM 文件中指定默认配置文件:

<activation>
<activeByDefault>true</activeByDefault>
</activation>

然而,这并不理想,因为每次我想用不同的配置文件构建应用程序时,我都必须删除那段代码,因为 maven 以其无限的智慧决定不覆盖该配置文件,如果我在命令行,呈现 -Pdev-Pint 无用。换句话说,如果我希望 Jenkins 能够构建应用程序,activeByDefault XML 不应存在于 POM 中。

最佳答案

以下解决方案假定您已经安装了 Java Extension Pack

如果没有,请继续安装然后继续阅读(Link to install Java Extension Pack)

在您的launch.json 配置中(Run -> Open Configurations)您需要使用vmArgs如下:

{
"version": "0.2.0",
"configurations": [
{
"type": "java",
"name": "Launch MyApp",
"request": "launch",
"mainClass": "com.example.MySpringApplication",
"projectName": "myproject",
"vmArgs": " -Dspring.profiles.active=dev"
}
]
}

您(当然)可以同时使用多个配置文件,例如,如果您已经将 Spring 安全配置分离到不同的文件中(例如 devsec-application.yaml):

"vmArgs": " -Dspring.profiles.active=dev,devsec"

关于maven - 在使用 Visual Studio Code 调试 spring boot 应用程序时,如何指定要使用的 maven 配置文件名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67159398/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com