Maven - плагин не найден для префикса 'tomcat7' в текущем проекте и в группах плагинов

Я создал проект Maven. Это структура:

-parent
    -core
    -web

но когда я пытаюсь развернуть с помощью команды mvn tomcat7:deploy, я получаю следующую ошибку:

No plugin found for prefix 'tomcat7' in the current project and in the plugin groups [org.apache.maven.plugins, org.codehaus.mojo]

Я установил эту конфигурацию в pom.xml(веб-проекта):

<build>
    <finalName>MavenWeb</finalName>
    <plugins>
        <plugin>
            <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <version>2.0</version>
        </plugin>
    </plugins>
</build>

Ответ 1

Цели плагинов могут быть вызваны с помощью команды "FQN": groupId: artifactId: version: goal или, если применимо, более короткие (доступно много вариантов). Используя только короткое имя плагина (в вашем tomcat7: deploy, tomcat7 - это короткое имя, развертывание которого является целью /mojo ) применимо, если:

1) groupId плагина содержится в известных группах плагинов Maven. org.apache.maven.plugins по умолчанию.

ИЛИ

pom.xml проекта, к которому вы вызываете команду Maven, объявляет плагин

2) artifactId является [short-name] -maven-plugin или maven- [short-name] -plugin (maven- [short-name] -plugin является "зарезервированным" для плагинов, предоставленных проектом Maven.

Это объясняет, почему компилятор mvn: компиляция может работать из коробки в любом проекте, но не tomcat7: deploy

В вашем случае второе условие истинно, поэтому вам просто нужно объявить плагин в проекте, на котором вы запускаете команду, или добавить это в свой файл settings.xml пользователя:

<pluginGroups>
  <pluginGroup>org.apache.tomcat.maven</pluginGroup>
</pluginGroups>

Подробнее см. здесь

Ответ 2

Причина, по которой вы получаете эту ошибку, состоит в том, что вы просто не установили плагин Tomcat7. Вот что вы можете сделать (я тестировал это на своем тестовом проекте, и он работает):

  • Добавьте зависимость плагина tomcat7 в файле pom.xml так же, как вы это сделали.
  • Запустите либо mvn install, либо mvn package, чтобы установить этот плагин tomcat7
  • Теперь вы можете запустить mvn tomcat7:deploy

Я тестировал это решение с mvn tomcat7:run, и он работает как шарм:)

Ответ 3

Это означает, что плагин tomcat7 не найден. Добавьте это в свой pom.xml.

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <version>2.3-SNAPSHOT</version>
        </plugin>
    </plugins>
</build>

Ответ 4

Ошибка имеет плагин внутри <reporting>, он должен быть расположен в <build>

До:

<reporting>
<plugins>
    <plugin>
    <groupId>org.apache.tomcat.maven</groupId>
    <artifactId>tomcat7-maven-plugin</artifactId>
    <version>2.2</version>
    <configuration>
    <port>8080</port>
    <path>/</path>
    </configuration>
    </plugin>
</plugins>
</reporting>

После:

<build>
<plugins>
    <plugin>
    <groupId>org.apache.tomcat.maven</groupId>
    <artifactId>tomcat7-maven-plugin</artifactId>
    <version>2.2</version>
    <configuration>
    <port>8080</port>
    <path>/</path>
    </configuration>
    </plugin>
</plugins>
</build>

Ответ 5

После того, как я проверил свой файл pom.xml, я удостоверился, что все мои зависимости были выбраны в порядке сборки под JAVA Build Path JAVA BUILD PATH

Ответ 6

Я получил ту же ошибку от использования файла idp.xml на основе файла и его форматирования!!! Не отформатируйте его, используйте завиток или хром и сохраните файл https://idp.ssocircle.com/idp-meta.xml непосредственно в spring -security-saml-1.0.2.RELEASE\образец\SRC\главная\ресурсы\метаданные\idm.xml

Затем в SecurityContext.cml

 <bean id="metadata" class="org.springframework.security.saml.metadata.CachingMetadataManager">
    <constructor-arg>
        <list>
            <!-- Example of classpath metadata with Extended Metadata -->
            <bean class="org.springframework.security.saml.metadata.ExtendedMetadataDelegate">
                <constructor-arg>
                    <bean class="org.opensaml.saml2.metadata.provider.ResourceBackedMetadataProvider">
                        <constructor-arg>
                            <bean class="java.util.Timer"/>
                        </constructor-arg>
                        <constructor-arg>
                            <bean class="org.opensaml.util.resource.ClasspathResource">
                                <constructor-arg value="/metadata/idp.xml"/>
                            </bean>
                        </constructor-arg>
                        <property name="parserPool" ref="parserPool"/>
                    </bean>
                </constructor-arg>
                <constructor-arg>
                    <bean class="org.springframework.security.saml.metadata.ExtendedMetadata">
                    </bean>
                </constructor-arg>
            </bean>

</bean>