Запустите tomcat из Maven с context.xml и введенным паролем

Я пытаюсь настроить файл Maven pom.xml таким образом, чтобы он

  • построить мой военный файл
  • запустить tomcat с context.xml, у которого есть ресурс базы данных
  • установите имя пользователя и пароль в этом context.xml из settings.xml или файла свойств

Мне нужно, чтобы имя пользователя и пароль были внешними по отношению к проекту, чтобы конфиденциальная информация не сохранялась в системе контроля версий.

Плагин Maven tomcat работает нормально, если я жестко запрограммирую имя пользователя и пароль. Я поместил файл context.xml в src/test/resources/tomcat/context.xml и настроил плагин так, чтобы он извлекал его оттуда:

<plugin>
    <groupId>org.apache.tomcat.maven</groupId>
    <artifactId>tomcat7-maven-plugin</artifactId>
    <version>2.2</version>
    <configuration> 
        <url>http://localhost:8080/manager/text</url>
        <contextFile>
        ${project.basedir}/src/test/resources/tomcat/context.xml
        </contextFile>
    </configuration>
</plugin>

Я видел примеры помещения имени пользователя и пароля в файл .m2/settings.xml следующим образом:

  <servers>
    <server>
      <id>demo</id>
      <username>myUser</username>
      <password>myPassword</password>
    </server>
  <servers>

Но я не знаю, как "внедрить" эти значения в context.xml. Я поместил следующее в соответствующие точки в моем context.xml:

${servers.server.demo.username}

or

${servers.server.username}

но они не разрешают фактическое значение.

Какова наилучшая практика для такого рода вещей?


person Marvo    schedule 23.12.2017    source источник


Ответы (1)


Вам нужно добавить тег «сервер» внутри «конфигурации» и указать его идентификатор в качестве значения. В вашем случае это «демо».

<plugin>
    <groupId>org.apache.tomcat.maven</groupId>
    <artifactId>tomcat7-maven-plugin</artifactId>
    <version>2.2</version>
    <configuration> 
        <url>http://localhost:8080/manager/text</url>
        <contextFile>
        ${project.basedir}/src/test/resources/tomcat/context.xml
        </contextFile>
        <server>demo</server>
    </configuration>
</plugin>
person svujic    schedule 23.12.2017
comment
Спасибо. Но что мне поместить в файл context.xml? Я пробовал ${servers.server.demo.username}, ${servers.server.username} и ${username}, и ни один из них не работал. Их не заменили. - person Marvo; 24.12.2017
comment
На основе тега «сервер» внутри «конфигурации» плагин Tomcat извлечет соответствующий пароль и имя пользователя из файла .m2/settings.xml, который является внешним по отношению к исходному дереву. - person svujic; 24.12.2017