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

将Gradle属性注入Spring Bootapplication.yml,在IntelliJ IDEA中不起作用

欧君之
2023-03-14

我成功地注入了Gradle项目。应用程序。yml,然后将其注入服务应用程序。我的申请。yml看起来像这样:

project: 
  version: ${version}

但只有当我从cli启动应用程序时,它才有效:

gradle bootRun

如果我尝试从IntelliJ启动应用程序,它不起作用,并且失败了:

Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'version' in value "${version}"

我阅读了Stackoverflow的所有答案,他们提出了两种解决方案

>

  • 使用Spring轮廓

    修改运行配置并在启动 gradle 任务之前运行:流程资源

    当我从IntelliJ运行时,我更喜欢proj.ver的默认值。这可能吗?或者对于这种情况有什么更好的解决办法?谢谢

  • 共有1个答案

    仲孙俊贤
    2023-03-14

    正如M. Deina在上面的评论中所说,我设法从IntelliJ运行了应用程序,但现在gradle bootRun开始失败:

    导致:groovy.lang.MissingPropertyException:没有这样的属性:未知类:SimpleTemplateScript2

    经过更多的研究,似乎${version?:未知}(带问号)它可以从IDE或cli工作。

    为了让其他人知道如何将Gradle构建信息注入Spring-boot,我更新了回复:

    1)告诉 Gradle 将构建数据传递到一个 Spring yml 文件中,如下所示:

    processResources {
    filesMatching('appInfo.yml') {
        expand(project.properties)
    }}
    

    appInfo.yml将类似于:

    project:
      version: ${version?:unknown}
    

    3) 将build的版本注入Spring服务,如:

    @Value("${project.version}")
    private String applicationVersion;
    
     类似资料:
    • 我卡住了!如果跳过测试并部署到tomcat自动布线,则配置属性文件将正常工作。在我的测试中,它失败了!我不确定我错过了什么。 GitService-自带属性在Tomcat上工作! GitServiceTest由于NPE,该类在初始化时失败.属性为空。 粘贴后我确实意识到@EnableConfigurationProperties在application.java和GitService.java类上

    • 问题内容: 我想制作一个DatabaseConfig类来设置与数据库相关的东西(EntityManager,DataSource,TransactionManager)并获取我在字段上使用的属性 喜欢 问题是,所有这些字符串都是NULL,而不是我的属性文件的值。 如果我将代码放入我的类(具有和中引用的代码),则值注入有效 简而言之,@Value在我的Application类中有效,但在我的自定义@

    • 我试图向自定义注释中注入一个值,但Spring似乎没有进行评估。

    • 文件src/main/webapp/WEB-INF/web.xml包含用于引导CDI的servlet侦听器和BeanManager引用: 通过这些设置,在使用mvn Jetty运行应用程序时,我总是遇到以下错误:run(第一行是最重要的): 应用程序正在运行,但正如异常消息所述:CDI注入在servlet中不可用。 在src/main/resources/log4j.properties中,我增加

    • 问题内容: 我正在尝试使用CSS属性控制Google Chrome浏览器的(可怕的)字体抗锯齿功能,但它对文本完全没有影响。 我已经比较了Photoshop中的像素,这三个像素完全相同。Chrome浏览器不再支持此属性吗? 问题答案: -webkit-font-smoothing不再起作用。Google Chrome小组有意更改了此行为。似乎以前版本的OSX并未“正确”应用字体平滑处理。

    • 我在一个android应用程序中工作,正在使用一个DialogFragment来显示一个对话框,我想让那个DialogFragment不可取消。我已经将对话框可取消属性设置为false,但它仍然不受影响。 请查看我的代码,并建议我一个解决方案。