Почему tomcat-maven-plugin пытается развернуть неправильный URL? - PullRequest
5 голосов
/ 22 января 2012

Я создаю фиктивный проект Maven с двумя модулями, и я включил общий файл pom.xml.Я могу собрать из корневого файла pom.xml и запустить все тесты, но когда дело доходит до развертывания файлов в Tomcat, он падает.У меня есть плагин:

<build>
    <finalName>dummy</finalName>
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>tomcat-maven-plugin</artifactId>
            <configuration>
                <url>http://127.0.0.1:8090/manager/text</url>
                <server>TomcatServer</server>
                <path>/dummy</path>
            </configuration>
        </plugin>
    </plugins>
</build>

settings.xml

<server>
    <id>TomcatServer</id>
    <username>admin</username>
    <password>admin</password>
</server>

Однако при запуске сборки используются значения конфигурации по умолчанию, и я получаю следующее сообщение об ошибке:

Не удалось выполнить цель org.codehaus.mojo: tomcat-maven-plugin: 1.1: deploy (default-cli) в веб-приложении проекта: Невозможно вызвать диспетчер Tomcat: http://localhost:8080/manager/deploy?path=%2Fwebapp&war= -> [Help1]

Кто-нибудь знает, как я могу заставить плагин использовать мою конфигурацию?

Дополнительные выходные данные:

[INFO] --- maven-war-plugin:2.1.1:war (default-war) @ webapp ---
[INFO] Packaging webapp
[INFO] Assembling webapp [webapp] in [C:\Websites\www.dummy.app\webapp\target\webapp]
[INFO] Processing war project
[INFO] Copying webapp resources [C:\Websites\www.dummy.app\webapp\src\main\webapp]
[INFO] Webapp assembled in [15 msecs]
[INFO] Building war: C:\Websites\www.dummy.app\webapp\target\webapp.war
[WARNING] Warning: selected war files include a WEB-INF/web.xml which will be ignored
(webxml attribute is missing from war task, or ignoreWebxml attribute is specified as 'true')
[INFO]
[INFO] <<< tomcat-maven-plugin:1.1:deploy (default-cli) @ webapp <<<
[INFO]
[INFO] --- tomcat-maven-plugin:1.1:deploy (default-cli) @ webapp ---
[INFO] Deploying war to http://localhost:8080/webapp
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] my-app ............................................ SUCCESS [4.747s]
[INFO] webapp ............................................ FAILURE [3.313s]
[INFO] dummy ............................................. SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 9.376s
[INFO] Finished at: Mon Jan 23 22:46:11 GMT 2012
[INFO] Final Memory: 18M/245M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.codehaus.mojo:tomcat-maven-plugin:1.1:deploy (default-cli) on project webapp: Cannot invoke Tomcat manager: http://localhost:8080/manager/deploy?path=%2Fwebapp&war= -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR]   mvn <goals> -rf :webapp

Спасибо

Ответы [ 3 ]

3 голосов
/ 16 мая 2013
<properties>
   <maven.tomcat.url>http://localhost:8080/manager/text</maven.tomcat.url>
</properties>

Исправлено для меня.

1 голос
/ 17 сентября 2014

У меня тоже была такая же проблема. Вот как я решил. Хотя это поздний ответ, я думаю, что этот ответ останется верным даже сегодня.

Я использую tomcat7.Tomcat-maven-plugin: 1.1 по умолчанию - URL-адрес развертывания tomcat http://localhost:8080/manager/html, но для tomcat 7 URL-адрес изменился на http://localhost:8080/manager/text.

Шаг 1: Найдите URL-адрес и роль для Tomcat для развертывания военных файлов.

Я обнаружил, что вручную перейдя на

apache-tomcat-7.0.41\webapps\manager\WEB-INF\web.xml

URL-адрес, используемый для развертывания: / text , поэтому maven должен использовать http://localhost:8080/manager/text Роль этого URL-адреса: « manager-script »

   <security-constraint>
    <web-resource-collection>
      <web-resource-name>Text Manager interface (for scripts)</web-resource-name>
      <url-pattern>/text/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
       <role-name>manager-script</role-name>
    </auth-constraint>
  </security-constraint>

Шаг 2. Настройка учетных данных tomcat для роли

Итак, теперь мы нашли URL для развертывания войны и роли. Если вы не настроили пользователей tomcat. Ниже описано, как добавить роли в apache-tomcat-7.0.41 \ conf \ tomcat-users.xml.

<tomcat-users>

  <role rolename="manager"/>
  <role rolename="manager-gui"/>
  <role rolename="manager-script"/>
  <role rolename="admin"/>
  <user username="admin" password="admin" roles="admin,manager,manager-gui,manager-script"/>

</tomcat-users>

Шаг 3: Настройте tomcat-maven-plugin в pom.xml для использования URL-адреса tomcat для развертывания.

Теперь нам нужно настроить tomcat-maven-plugin для их использования. Ниже приведена конфигурация моего плагина в pom.xml. Это переопределит URL-адрес развертывания tomcat по умолчанию для tomcat-maven-plugin.

    <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>tomcat-maven-plugin</artifactId>
            <configuration>
                <server>mytomcatserver</server>
                <url>http://localhost:8080/manager/text</url>
            </configuration>
    </plugin>

Шаг 4. Настройте maven settings.xml для учетных данных URL-адреса tomcat.

Теперь, чтобы плагин maven развернул военный файл на tomcat, ему нужны имя пользователя и пароль. для вашего сервера Tomcat. Узнайте, что находится файл settings.xml maven (у меня был apache-maven-3.2.3 \ conf) и примените приведенный ниже конфиг к

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

Шаг 5: Момент истины

Запустить кота.

mvn package (создан файл war)

mvn tomcat: deploy (смотрите консоль tomcat для развертывания войны)

Ваше веб-приложение будет доступно по адресу http://localhost:8080/{context}

1 голос
/ 08 февраля 2012

Попробуйте использовать версию 2.0-бета-1 плагина.
Смотри https://issues.apache.org/jira/browse/MTOMCAT-68

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