Maven - 找不到前缀' tomcat7'在当前项目和插件组中

时间:2014-06-19 16:13:06

标签: java maven tomcat

我创建了一个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(web项目)中:

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

6 个答案:

答案 0 :(得分:19)

可以使用'FQN'来调用插件目标: groupId:artifactId:version:goal ,或者,如果适用,还可以使用更短的命令(许多变体可用)。 仅使用插件的短名称(在 tomcat7:deploy 中,tomcat7是短名称,deploy为目标/ mojo)适用于:

1)插件的groupId包含在Maven的已知插件组中。 org.apache.maven.plugins 默认位于列表中。

OR

您正在调用Maven命令的项目的pom.xml声明了插件

2)artifactId是 [短名称] -maven-plugin maven- [短名称] -plugin maven- [short-名称] -plugin 为Maven项目提供的插件“保留”。

这解释了为什么 mvn编译器:compile 可以在任何项目上开箱即用,但不能 tomcat7:deploy

在您的情况下,第二个条件为true,因此您只需在要启动命令的项目上声明插件,或将其添加到您的用户 settings.xml 文件中:

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

See here for more info

答案 1 :(得分:4)

您收到该错误的原因是您没有安装Tomcat7插件。这是你可以做的(我在我的测试项目上测试了它并且它有效):

  1. 在您的pom.xml文件中添加tomcat7插件依赖项,就像您一样。
  2. 运行mvn installmvn package以安装该tomcat7插件
  3. 现在您应该可以运行mvn tomcat7:deploy
  4. 我用mvn tomcat7:run测试了这个解决方案,它就像一个魅力:)

答案 2 :(得分: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>

答案 3 :(得分:1)

错误恰好位于<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>

答案 4 :(得分:1)

检查pom.xml文件后,确保在JAVA构建路径JAVA BUILD PATH下按构建顺序选择了所有依赖项

答案 5 :(得分:0)

使用基于文件的idp.xml并格式化它时出现了同样的错误!不要格式化,使用curl或chrome并将文件从https://idp.ssocircle.com/idp-meta.xml直接保存到spring-security-saml-1.0.2.RELEASE \ sample \ src \ main \ resources \ metadata \ 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>