Различные файлы, которые будут упакованы в военный проект Maven - PullRequest
3 голосов
/ 18 ноября 2010

У меня есть проект Maven для упаковки пакетов, в котором у меня есть файлы свойств Java под названием myapp.properties.В этом файле свойств я храню некоторые параметры, например параметры подключения к базе данных, которые будут использоваться веб-приложением.

  1. Либо в среде непрерывной интеграции, либо в моей среде разработки я хочу установить некоторые параметры тестирования в myapp.properties, например, для подключения к моей тестовой базе данных.время я хочу оставить эти параметры пустыми в моем окончательном пакете war, чтобы пользователи могли сами добавлять эти значения во время развертывания в своей среде.Последний пакет war должен быть артефактом сборки, сгенерированным в среде непрерывной интеграции.

По сути, есть две версии файла myapp.properties, которые я хочу использовать в разных случаях.У меня вопрос, как Maven способ решить эту проблему?Я использую Eclipse + WTP + m2eclipse в своей среде разработки, и я надеюсь, что решение может хорошо работать вместе с моими инструментами разработки.

Ответы [ 2 ]

4 голосов
/ 18 ноября 2010

Вы можете посмотреть этот блог: http://blog.jayway.com/2010/01/21/one-artifact-with-multiple-configurations-in-maven/

Они создают разные war-файлы и используют другой классификатор (вместо разных профилей).Я не уверен, что это путь maven, но он работает для некоторых моих проектов.

0 голосов
/ 18 ноября 2010

я бы попробовал с

pom.xml для вашего проекта (или родительского pom)

        <build>
          ...
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>**/*.properties</include>
            </includes>
            <filtering>true</filtering>
        </resource>
         ...
        </build>

в ваших файлах свойств, например

db.url=${db.url}

и в вашем файле settings.xml (см. http://maven.apache.org/settings.html#Profiles)

<db.url>jdbc:mysql://localhost:3306/testdb</db.url>

В зависимости от стадии разработки (локальный, сервер сборки и т. Д.) Вы можете использовать различные значения db.url

это не оставит свойство db.url пустым, но каждый раз, когда вы упаковываете артефакт, вы не хотите, чтобы он оставался пустым, не так ли?

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