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>