2012-09-25 84 views
2

我剛安裝了maven eclipse插件,都很棒。我曾嘗試創建我的第一個魔咒。安裝完成後,它已經下載了所有必需的依賴關係。eclipse爲什麼在添加到依賴項部分後未能解決Maven插件依賴項?

現在困擾我的是Eclipse無法解決org.apache.maven.plugins類。

我的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.blah.dalm.mojo</groupId> 
    <artifactId>assembly-mojo</artifactId> 
    <packaging>maven-plugin</packaging> 
    <name>Assembly Mojo</name> 
    <version>0.0.1-SNAPSHOT</version> 

    <build>  
    <sourceDirectory>${basedir}</sourceDirectory> 
    <!-- Plugin Configurations --> 
    <plugins> 
     <!-- Compiler plugin to use 1.6 --> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>2.0.2</version> 
      <executions> 
       <execution> 
       </execution> 
      </executions> 
      <configuration> 
       <source>1.6</source> 
       <target>1.6</target> 
      </configuration> 

     </plugin> 
    </plugins> 
    </build> 
    <!-- Dependencies --> 
    <dependencies> 
    <dependency> 
     <groupId>org.apache.maven</groupId> 
     <artifactId>maven-plugin-api</artifactId> 
     <version>2.0</version> 
    </dependency> 
    </dependencies> 
</project> 

我的魔力文件AssemblyMojo.java:

package com.blah.dalm.mojo; 

import java.util.List; 
import org.apache.maven.plugin.MojoExecutionException; // <-- This is where it says it cannot resolve the class or package. 

/** 
* "Assemble Goal" 
* @goal assemble-goal 
* @author Husain Khambaty 
* 
*/ 
public class AssemblyMojo { 
    /** 
    * @parameter expression="${assembly.sourcePath}" 
    * @required 
    */ 
    private String sourcePath; 

    /** 
    * @parameter expression="${assembly.outputPath}" 
    * @required 
    */ 
    private String outputFilePath; 

    /** 
    * @parameter 
    */ 

    private List<String> excludeList; 
    /** 
    * @parameter 
    */ 

    private String filterRule; 

    public void execute() throws MojoExecutionException { // <-- And here 

    } 
} 

這是無法解決的MojoExectionException類(因此,我認爲它是不能夠找到需要更新的jar,我猜它應該在Eclipse-Maven集成之後自動獲取)。

當我建立它,它建立得很好。

+0

當你說它構建得很好時,你在使用maven還是Eclipse構建?我看不到添加特定於任何可能具有MojoExectionException類的mojo jar的依賴關係。 – Metalhead

+0

確保maven-plugin-api.jar在你的Maven本地存儲庫中成功下載並存在於Eclipse項目的classpath中。 – yorkw

+0

謝謝@yorkw,你的回答讓我找到了解決辦法。我已經將下面的答案與我期待的工作解決方案一起提出。謝了哥們。 –

回答

0

解決方案:

由於@yorkw - 他的回答使我的解決方案。

在安裝Maven-Eclipse插件並在pom.xml中添加依賴後,它會自動從Maven存儲庫中找到這些jar並將它們添加到「Maven Dependencies」部分。這樣做沒有發生,當我做到了(可能做錯了)。

@yorkw回答後,我添加了罐子,它工作。就在這時我發現我已經啓用了依賴關係。所以,爲了這一點,我禁用了它們,並再次啓用它們,突然間出現了「Maven Dependenices」出現的地方。唷。 (注意:我確實嘗試過放置屏幕截圖 - 但我是StackOverflow的新手,它不允許我發佈圖像。我將及時編輯此帖子並將其屏幕截圖發給其他人)。