我允许Maven将一些依赖文件复制到GWT项目的特定位置。maven-dependency-plugin完成了这项工作,到目前为止它还在工作。唯一的问题是,我从Eclipse那里得到了一个错误,它说:
Artifact has not been packaged yet. When used on reactor artifact, copy should be executed after packaging: see MDEP-187.
我曾试图改变<phase>,但这是行不通的。我如何才能消除这个错误,以及为什么会出现这个错误,因为Maven按预期构建。
<plugins>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<phase>install</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.basedir}/war/WEB-INF/lib</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>发布于 2016-06-24 00:50:23
我得到了同样的错误,我解决了这个问题的解决办法。我在Eclipse之外的控制台中编译并安装了Maven项目。在Eclipse中刷新项目之后,错误就消失了。
发布于 2018-06-07 15:55:31
有一个类似于s1moner3d answer的解决方案,它不需要更改pom.xml文件。
转到Window > Preferences > Maven > Lifecycle,并单击按钮。

而不是在下面的代码中添加pluginExecution条目。如果文件为空,请复制下面的全部内容。您可能需要更改versionRange。
<?xml version="1.0" encoding="UTF-8"?>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<versionRange>2.10</versionRange>
<goals>
<goal>copy-dependencies</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>为了使其生效,请返回首选项,然后单击Reload工作区生命周期映射元数据。更新Maven项目和/或重新构建。错误应该消失了。
如果出于任何原因不能或不希望修改pom.xml,但希望阻止Eclipse执行特定插件的特定目标,则非常有用。
发布于 2017-09-01 11:01:24
我通过将插件阶段设置为prepare-package.来解决问题。我知道这仍然是一个解决办法,但我认为它比外部编译更干净。
<plugins>
[...]
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<phase>prepare-package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
[YOUR_CONFIGURATION]
</configuration>
</execution>
</executions>
</plugin>
[...]
</plugins>编辑:
这并不是完全解决问题:有时起作用,有时不起作用。
最后的解决方案是通过只有eclipse的Maven配置文件使用生命周期映射maven虚拟插件:
<profile>
<id>only-eclipse</id>
<activation>
<property>
<name>m2e.version</name>
</property>
</activation>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<versionRange>${maven-dependency-plugin.version}</versionRange>
<goals>
<goal>copy-dependencies</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
</profile>https://stackoverflow.com/questions/30642630
复制相似问题