有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

maven中的java概要文件选择要内置的文件取决于maven中的概要文件

我有application.properties个文件。我希望能够在maven中使用另一个application.properties文件,具体取决于选择的概要文件。你能告诉我怎么做吗

以上是我对这个问题的看法。也许你知道一些更好的?我的意思是选择jdbc连接的问题。这意味着,根据配置文件,我希望能够选择不同的JDBCURL


共 (2) 个答案

  1. # 1 楼答案

    虽然从技术上讲这很容易,你可以参考@ZhekaKozlov的答案,但这是一个非常糟糕的想法。如果DB的密码更改,应用程序本身是否应该更改?否-应用程序保持不变,更改的是应用程序的配置

    通过使用Maven配置文件,您正在为不同的环境创建一个新的二进制文件,这实际上意味着为每个配置选项创建一个新的应用程序。因此,您可以选择两个选项来代替此操作:

    • 如果允许,您可以将所有配置文件放在二进制文件中,然后在启动期间在它们之间进行选择(-Denv=prd)。但您仍然需要构建一个新的二进制文件,以防属性发生变化
    • 最好的选择是从二进制文件外部化配置。也就是说,在启动过程中指定属性文件的位置:-Dconf=/etc/appname/application.properties

    持续交付的黄金法则——构建一次就可以在任何地方运行。您应该始终能够从任何环境下载二进制文件,并使用不同的属性集在本地运行它

  2. # 2 楼答案

    比如:

    <profiles>
        <profile>
            <id>dev</id>
            <activation>
                <!  This profile will be default in your IDE  >
                <activeByDefault>true</activeByDefault>
            </activation>
    
            <build>
                <resources>
                    <resource>
                        <directory>src/main/resources-dev</directory>
                    </resource>
                </resources>
            </build>
        </profile>
    
        <profile>
            <id>prod</id>
    
            <build>
                <resources>
                    <resource>
                        <directory>src/main/resources-prod</directory>
                    </resource>
                </resources>
            </build>
        </profile>
    </profiles>
    

    您需要创建两个目录:src/main/resources-devsrc/main/resources-prod。然后在每个目录中放置一个对应的application.properties

    src
       main
          java
             ...
       resources-dev
          application.properties
       resources-prod
          application.properties
    

    使用dev配置文件生成的命令:mvn clean install

    命令 使用prod配置文件生成:mvn clean install -Pprod