Замените значение application.properties из файла других свойств. - PullRequest
1 голос
/ 01 июля 2019

У меня ниже файл свойств файла приложения в моем загрузочном приложении Spring. Все файлы свойств находятся в папке src / main / resources Весенняя загрузка версии 2.1.6

application.properties application-dev.properties application-tst.properties

application.properties app.name = {app.name} app.common = Common val
application-dev.properties app.name = My dev app
application-tst.properties app.name = My tst app

Dev и tst - это maven профиль, который я создал

 <profiles>
        <profile>
            <id>dev</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <env>dev</env>
            </properties>
        </profile>

        <profile>
            <id>tst</id>
            <properties>
                <env>tst</env>
            </properties>
        </profile>
    </profiles>

Если я собираю проект с профилем разработчика, я должен получить следующее в моем приложении. Свойства

1) mvn -Pdev clean install

application.properties app.name = My dev app app.common = Общее значение

2) mvn -Ptst clean install

application.properties app.name = My tst app app.common = Общее значение

Как мне этого добиться?

Ответы [ 2 ]

1 голос
/ 01 июля 2019

Вы можете использовать переменную окружения для установки активного профиля следующим образом

mvn install -Dspring.profiles.active=dev

или

mvn install -Dspring.profiles.active=tst

0 голосов
/ 01 июля 2019

Это, вероятно, не рекомендуемый способ, но вы можете использовать org.apache.maven.plugins.maven-resources-plugin, как показано ниже.

pom.xml

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <version>3.1.0</version>
            </plugin>
        </plugins>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>
        <filters>
            <filter>src/main/resources/application-${env}.properties</filter>
        </filters>
    </build>

application.properties

app.name=@app.name@
app.common=Common val

application-dev.properties

app.name=My dev app

application-tst.properties

app.name=My tst app

, а затем mvn -Pdev clean install или mvn -Ptst clean install

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...