在maven的pom配置文件中,有时在eclipse中会出现
maven-dependency-plugin (goals "copy-dependencies", "unpack") is not supported by m2e. 的编译错误。
例如在如下的一段配置文件中(用于复制文件的plugin),在execution中就会出现该错误:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/package</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
</configuration>
</execution>
</executions>
</plugin>
解决方法:
在已有的<plugins> ... </plugins>前面加上另一个plugins的配置:
<pluginManagement>
<plugins>
<!-- Ignore/Execute plugin execution -->
<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>[1.0.0,)</versionRange>
<goals>
<goal>copy-dependencies</goal>
<goal>unpack</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
编译后即可发现error被清除了。
附:用maven复制资源:
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<phase>test</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<delete file="${project.build.outputDirectory}/cms_core_config.properties"/>
<copy file="src/main/resources/${config.lookup.name}"
tofile="${project.build.outputDirectory}/cms_core_config.properties"/>
<delete dir="${project.build.outputDirectory}/source"/>
<copy todir="${project.build.outputDirectory}/source">
<fileset dir= "src/main/resources/${source.lookup.name}"/>
</copy>
<!-- Hack to prevent PROD configs getting load to QA -->
<delete dir="${project.build.outputDirectory}/prod/source"/>
<delete file="${project.build.outputDirectory}/cms_core_messaging_config.properties"/>
<copy file="src/main/resources/${messageconfig.lookup.name}"
tofile="${project.build.outputDirectory}/cms_core_messaging_config.properties"/>
<!-- <delete file="${project.build.outputDirectory}/cms_platform_log4j.xml"/>
<copy file="src/main/resources/${log4jconfig.lookup.name}"
tofile="${project.build.outputDirectory}/cms_platform_log4j.xml"/> -->
<!-- <delete file="${project.build.outputDirectory}/configDebug.txt"/>
<copy file="src/main/resources/${calconfig.lookup.name}"
tofile="${project.build.outputDirectory}/configDebug.txt"/>
<delete file="${project.build.outputDirectory}/jodb-service.xml"/>
<copy file="src/main/resources/${jodbconfig.lookup.name}"
tofile="${project.build.outputDirectory}/jodb-service.xml"/> -->
<delete file="${project.build.outputDirectory}/cms_core_cmsws_config.properties"/>
<copy file="src/main/resources/${cmswsconfig.lookup.name}"
tofile="${project.build.outputDirectory}/cms_core_cmsws_config.properties"/>
</tasks>
</configuration>
</execution>
</executions>
</plugin>