gpt4 book ai didi

spring - 通过构建脚本更改mongo dbname

转载 作者:行者123 更新时间:2023-12-03 05:07:16 25 4
gpt4 key购买 nike

我想要什么:
我想建立一个自动部署管道-我的计划如下:
我创建了两个.war文件,使用gradle构建脚本将它们称为prod.wartest.war,并将它们部署到我的tomcat服务器。

我的问题:prod.war需要访问生产数据库(mongoprod),并且test.war需要访问测试数据库(mongotest)。

我的尝试:
我以为我可以使用Spring配置文件,而...

  • ...从以下位置更改我的application-context.xml中的一行:<mongo:db-factory id="mongoDbFactory" dbname="mongoprod"/>至:<mongo:db-factory id="mongoDbFactory" dbname="${mongo.db.name}"/>
  • ...在同一文件夹中创建两个文件(<filename>:<content>):application-production.properties:mongo.db.name=mongotestapplication-test.properties:mongo.db.name=mongoprod
  • ...执行带有参数的gradle构建脚本,该脚本可以将配置文件更改为productiontest,然后使用相应的.property文件插入所需的mongo dbname ...但是那是我不走运的地方!
    我试图将其添加到我的build.gradle文件中:bootRun { args = ["--spring.profiles.active=" + profiles] }然后用$ ./gradlew bootRun -Ptest运行它
    但我只是得到错误:Main class name has not been configured and it could not be resolved除了我以前没有使用bootRun之外,到目前为止只有一个war任务可以创建我的.war文件:war {
    archiveName = 'application.war'
    dependsOn 'lessc', 'webpack'
    from "$buildDir/webapp"
    exclude 'WEB-INF/js/main.js'
    rename 'main\\.min\\.js', 'main.js'
    }

  • 有谁知道我如何解决我的问题或可以给我有用的信息?

    最佳答案

    您需要提供一个由bootRun任务运行的主类名称,例如:

    springBoot {
    mainClassName = 'org.baeldung.DemoApplication'
    }

    您可以在thos tutorial中了解更多信息

    更新:

    可以如下配置应用程序插件
    application {
    mainClassName = 'org.gradle.sample.Main'
    }

    正如 plugin docs中所说

    关于spring - 通过构建脚本更改mongo dbname,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55834913/

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