2014-01-12 109 views
6

我創建了一個帶有原型「webapp」的Maven項目,但是當我啓動命令「mvn tomcat7:start」時,出現以下錯誤:Maven - 在當前項目中找不到前綴'tomcat7'的插件

No plugin found for prefix 'tomcat7' in the current project and in the plugin groups [org.apache.maven.plugins, org.codehaus.mojo] available from the repositories [local (C:\dark\.m2\repository), central (http://repo.maven.apache.org/maven2)] -> [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. 

我的項目結構:

-src 
    -main 
     -resources 
     -webapp 
      -WEB-INF 
      -web.xml 
      -index.jsp 
-target 
    -classes 
    -dependency 
     - // the 'dependency' directory contains all the jar files 
    -lbagno 
    -maven-archiver 
    -surefire 
    lbagno.war 

我的pom.xml包含以及爲Tomcat的依賴。

的pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 

<modelVersion>4.0.0</modelVersion> 
<groupId>com.myspace</groupId> 
<artifactId>lbagno</artifactId> 
<packaging>war</packaging> 
<version>0.0.1-SNAPSHOT</version> 
<name>lbagno Maven Webapp</name> 
<url>http://maven.apache.org</url> 


<dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>3.8.1</version> 
     <scope>test</scope> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-core</artifactId> 
     <version>3.1.0.RELEASE</version> 
    </dependency> 

    <dependency> 
     <groupId>org.apache.tomcat.maven</groupId> 
     <artifactId>tomcat7-maven-plugin</artifactId> 
     <version>2.2</version> 
     <type>maven-plugin</type> 
    </dependency> 
</dependencies> 

<build> 
    <finalName>lbagno</finalName> 
</build> 

</project> 

我不明白爲什麼這是行不通的。

你有什麼解決方案嗎?

謝謝

回答

2

首先,沒有啓動的目標,看到該文檔的goals page

接下來,它是一個插件,你聲明它是一個依賴項,這就是爲什麼你會得到這個錯誤,我建議你閱讀插件的usage page

這裏是pom.xml的示意性結構:

<project> 
    <!-- ... --> 

    <dependencies> 
     <!-- your deps here --> 
    </dependencies> 

    <build> 
     <plugins> 
      <!-- your default build plugins here --> 
     </plugins> 
    <build> 

    <!-- ... --> 
</project> 
0

運行MVN與-X -e PARAMS。這應該給你更多關於錯誤的信息。

我看到你沒有任何pluginRepositories聲明。將以下行添加到您的pom.xml中:

<pluginRepositories> 
    <pluginRepository> 
     <id>apache.snapshots</id> 
     <name>Apache Snapshots</name> 
     <url>http://repository.apache.org/content/groups/snapshots-group/</url> 
     <releases> 
      <enabled>false</enabled> 
     </releases> 
     <snapshots> 
      <enabled>true</enabled> 
     </snapshots> 
    </pluginRepository> 
</pluginRepositories> 
6

我知道這是一年前問的,但我的答案可能適用於除我之外的其他人。

如果pom.xml文件創建構建標籤不工作,請嘗試編輯settings.xml文件在您的目錄的.m2這樣:

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

我發現這裏的解決方案: http://tomcat.apache.org/maven-plugin-2.2/

+0

我一直使用'pom.xml'(如@RC)聲明將我的Maven項目部署到Tomcat幾個月沒有問題,但突然間,沒有明顯的變化,它打破了。您的解決方案再次部署。 – Merchako

+0

爲什麼這是一個特殊情況將它添加到settings.xml? –

+0

已經存在,不解決我的問題 – Justin

2

這個工作對我來說:

mvn clean install tomcat7:run 
0

嘗試從你的依賴中刪除這部分,並把這一行的c在您的項目pom.xml中插入插件。 從依賴刪除這一行代碼:

<dependency> 
    <groupId>org.apache.tomcat.maven</groupId> 
    <artifactId>tomcat7-maven-plugin</artifactId> 
    <version>2.2</version> 
    <type>maven-plugin</type> 
</dependency> 

,並把這個....

<plugin> 
    <groupId>org.apache.tomcat.maven</groupId> 
    <artifactId>tomcat7-maven-plugin</artifactId> 
    <version>2.2</version> 
</plugin> 

這必將工作。

相關問題