Ответ 1
У меня такая же ошибка, и я решил эту проблему обходным путем. Я скомпилировал и установил проект с maven в консоли вне eclipse ide. После того, как я обновил проект внутри eclise ide и ошибка исчезла.
Я разрешаю 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>
У меня такая же ошибка, и я решил эту проблему обходным путем. Я скомпилировал и установил проект с maven в консоли вне eclipse ide. После того, как я обновил проект внутри eclise ide и ошибка исчезла.
Я решил, установив фазу плагина на подготовить-пакет. Я знаю, что это все еще обходное решение, но я думаю, что он чище, чем компилируется извне.
<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>
EDIT:
Это не полностью решает: иногда это работает, иногда нет.
Конечным решением является использование Lifecycle Mapping Maven Dummy Plugin через профиль maven только для eclipse:
<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>
Мне пришлось отключить теги плагинов под плагином, чтобы ошибка исчезла.
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>../../lib/</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>