Eclipse Luna maven-jar-plugin执行不包含在生命周期中

时间:2014-06-30 19:30:54

标签: m2e maven-jar-plugin m2e-wtp eclipse-luna

我有一个使用maven-jar-plugin的maven java项目(部署到jboss,如果这很重要)。使用Eclipse Kepler可以正常工作。我现在正在尝试Luna(EE版),我现在收到此错误

Plugin execution not covered by lifecycle configuration: org.apache.maven.plugins:maven-jar-plugin:2.5:jar (execution: make-a-jar, phase: compile)

在我的所有子.pom文件中(maven-jar-plugin在父.pom文件中指定,但错误指向子.poms中的块)。

在.pom查看器中,如果我单击Overview选项卡中的错误消息,它会为我提供“发现新的m2e连接器”选项。单击此按钮会显示“m2e Marketplace”对话框,似乎可以执行大量工作,但之后只显示一个空列表。如果我单击“完成”,它会尝试计算依赖关系,然后给我这个错误:

Operation details
Cannot complete the request.  See the error log for details.
"m2e connector for mavenarchiver pom properties" will be ignored because a newer version is already installed. 

所以似乎maven-jar-plugin可能依赖于特定版本的mavenarchiver,但Eclipse Luna EE附带了更新的版本。有没有办法解决这个问题,或者我只是要等待发布更新版本的maven-jar-plugin? (我目前正在使用2.5版的maven-jar-plugin,这是我所知道的最新版本。)

2 个答案:

答案 0 :(得分:2)

尝试在Eclipse中导入Hadoop项目时遇到了类似的问题。上面的解决方案有效......但是我对改变一些pom文件感到“厌倦”,并认为这个改变会让我后来感到厌烦。所以,另一个解决方案是: 要避免Eclipse中有关生命周期未涵盖的执行的消息,请转到Windows - >偏好 - > Maven - >错误/警告,并选择忽略“插件执行未涵盖生命周期..”

答案 1 :(得分:1)

当您将执行阶段从编译更改为包时(这是jar目标的默认生命周期阶段),您可以解决问题。

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>${maven-jar-plugin}</version>
            <executions>
              <execution>
                <phase>package</phase>  <!-- changed from compile to package -->
                <goals>
                  <goal>jar</goal>
                </goals>
              </execution>
            </executions>               
        </plugin>