Подтвердить что ты не робот

Maven - <сервер/"> в settings.xml

Я использую tomcat-maven-plugin для развертывания моей войны с сервером. Что мне нужно сделать, так настроить его в моем pom.xml:

<configuration>
...
   <url>http://localhost/manager</url>
   <username>admin</username>
   <password>admin</password>
...
</configuration>

Но тогда я, очевидно, хочу сохранить эти настройки в другом месте, так как я работаю на своем компьютере, но потом там также размещаются и живут серверы, где настройки сервера разные.

Итак, используйте .m2/settings.xml:

<servers>
    <server>
        <id>local_tomcat</id>
        <username>admin</username>
        <password>admin</password>
    </server>
</servers>

Теперь измените pom.xml:

<configuration>
    <server>local_tomcat</server>
</configuration>

Но куда поместить URL-адрес сервера? Там нет места для этого в settings.xml под тегом сервера! Может быть, так?

<profiles>
  <profile>
     <id>tomcat-config</id>
      <properties>
    <tomcat.url>http://localhost/manager</tomcat.url>
      </properties>
  </profile>
</profiles>

<activeProfiles>
   <activeProfile>tomcat-config</activeProfile>
</activeProfiles>

.. и используйте свойство ${tomcat.url}.

Но тогда возникает вопрос: зачем вообще использовать тег сервера в settings.xml? Почему бы не использовать свойства для имени пользователя и пароля? Или есть место для URL-адреса, а также в URL-адресе настроек, поэтому мне не нужно использовать свойства?

4b9b3361

Ответ 1

Прежде всего позвольте мне сказать, profiles - одна из самых мощных функций Maven.

Сначала создайте профиль в pom.xml, который выглядит так:

<profiles>
    <profile>
        <id>tomcat-localhost</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <properties>
            <tomcat-server>localhost</tomcat-server>
            <tomcat-url>http://localhost:8080/manager</tomcat-url>
        </properties>
    </profile>
</profiles>

Затем в вашем файле ~/.m2/settings.xml добавьте следующие записи servers:

   <servers>
       <server>
           <id>localhost</id>
           <username>admin</username>
           <password>password</password>
       </server>
    </servers>

Конфигурируйте свой плагин build следующим образом:

<plugin>
    <!-- enable deploying to tomcat -->
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>tomcat-maven-plugin</artifactId>
    <version>1.1</version>
    <configuration>
        <server>${tomcat-server}</server>
        <url>${tomcat-url}</url>
    </configuration>
</plugin>

Это позволит вашему профилю tomcat-localhost по умолчанию и позволяет вам развертывать его с помощью простого mvn clean package tomcat:deploy.

Для развертывания для других целей настройте новую запись <server/> в settings.xml с соответствующими учетными данными. Добавьте новый profile, но оставьте строку <activation/> и настройте ее, чтобы указать соответствующие данные.

Затем, чтобы использовать его, mvn clean package tomcat:deploy -P [profile id], где [profile id] - новый профиль.

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

Ответ 2

settings.xml

<settings>
  <servers>
    <server>
        <id>company.jfrog.io</id>
        <username>user-name</username>
        <password>user-password</password>
    </server>   
  </servers>
</settings>

pom.xml

<repositories>
    <repository>
        <id>company.jfrog.io</id>
        <url>https://some.repository.jfrog.io/company/release</url>
    </repository>
</repositories>

Поместите файл settings.xml в

c: /Users/user-name/.m2/settings.xml (для Windows),

~/.m2/settings.xml (для Linux).

company.jfrog.io может быть любым идентификатором, но он должен быть одинаковым в settings.xml и pom.xml.

Это работает для Maven 3.