构建Terasort时Maven插件版本缺失及Eclipse报错求助
解决Terasort构建时的Scala Maven插件问题
我来帮你搞定这两个常见的Scala Maven插件问题,一步步来:
1. 解决版本缺失的警告 ('build.plugins.plugin.version' for net.alchim31.maven:scala-maven-plugin is missing)
这个问题很直接——Maven需要明确知道插件的版本号,你只需要在<plugin>标签里添加指定版本的<version>节点就行。从你Eclipse的错误提示来看,插件版本是3.3.1,直接用这个版本号:
修改后的插件基础配置:
<plugin> <groupId>net.alchim31.maven</groupId> <artifactId>scala-maven-plugin</artifactId> <!-- 添加版本号 --> <version>3.3.1</version> <executions> <execution> <goals> <goal>compile</goal> <goal>testCompile</goal> </goals> </execution> <execution> <id>attach-javadocs</id> <goals> <goal>doc-jar</goal> </goals> </execution> </executions> <configuration> <sourceDir>src/main/scala</sourceDir> <jvmArgs> <jvmArg>-Xms64m</jvmArg> <jvmArg>-Xmx1024m</jvmArg> </jvmArgs> </configuration> </plugin>
添加版本后,再执行mvn install,那个版本缺失的警告就会消失。
2. 解决Eclipse的生命周期配置错误 (Plugin execution not covered by lifecycle configuration)
这个是Eclipse的M2E插件(Maven Integration for Eclipse)无法识别scala-maven-plugin的执行阶段导致的。你需要在pom.xml的<build>标签下添加<pluginManagement>配置,告诉Eclipse如何处理这些插件执行:
在你的<build>节点内添加以下配置:
<pluginManagement> <plugins> <!-- 解决M2E生命周期问题 --> <plugin> <groupId>org.eclipse.m2e</groupId> <artifactId>lifecycle-mapping</artifactId> <version>1.0.0</version> <configuration> <lifecycleMappingMetadata> <pluginExecutions> <!-- 处理scala-maven-plugin的compile和testCompile执行 --> <pluginExecution> <pluginExecutionFilter> <groupId>net.alchim31.maven</groupId> <artifactId>scala-maven-plugin</artifactId> <versionRange>[3.3.1,)</versionRange> <goals> <goal>compile</goal> <goal>testCompile</goal> <goal>doc-jar</goal> </goals> </pluginExecutionFilter> <action> <!-- 告诉Eclipse忽略这些执行,由Maven命令行处理 --> <ignore /> </action> </pluginExecution> </pluginExecutions> </lifecycleMappingMetadata> </configuration> </plugin> </plugins> </pluginManagement>
最后一步:刷新Eclipse配置
修改完pom.xml后,在Eclipse中右键你的项目,选择 Maven -> Update Project...,勾选你的项目并点击确定,Eclipse就会重新加载配置,那个生命周期错误就会消失。
现在再执行mvn install,两个问题应该都能解决了!
内容的提问来源于stack exchange,提问作者pac
相关产品推荐
相关产品推荐

