6

我有一个使用 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 查看器中,如果我单击概览选项卡中的错误消息,它会为我提供“发现新的 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,这是我所知道的最新版本。)

4

2 回答 2

2

尝试在 Eclipse 中导入 Hadoop 项目时遇到了类似的问题。上面的解决方案有效......但我对更改一些 pom 文件感到“厌倦”,并认为更改会在以后咬我。因此,另一个解决方案是:为了避免 Eclipse 中有关执行未涵盖在生命周期中的消息,请转到 Windows -> Preferences -> Maven -> Errors/Warning 并为“Plugin execution not Covered for Lifecycle..”选择忽略。

于 2014-12-18T17:16:05.563 回答
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>
于 2014-09-09T08:00:37.413 回答