Eclipse导入含avro-maven-plugin项目无对应市场条目报错求助
报错根因
Eclipse内置Maven集成组件m2e未预置avro-maven-plugin:idl-protocol目标的处理连接器,导入项目时会触发找不到市场条目的报错。
有效解决方案
以下方案按优先级排序,选其中一种即可:
- 方案1:pom.xml添加m2e生命周期映射(推荐,全团队生效无额外配置)
在项目pom.xml的<build>标签下新增如下pluginManagement配置:
<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.avro</groupId> <artifactId>avro-maven-plugin</artifactId> <versionRange>[1.8.2,)</versionRange> <goals> <goal>schema</goal> <goal>protocol</goal> <goal>idl-protocol</goal> </goals> </pluginExecutionFilter> <action> <!-- 选ignore则IDE不自动执行插件,选execute则Eclipse更新项目时自动编译AVRO代码 --> <ignore /> </action> </pluginExecution> </pluginExecutions> </lifecycleMappingMetadata> </configuration> </plugin> </plugins> </pluginManagement>
配置完成后右键项目选择Maven -> Update Project,勾选Force Update of Snapshots/Releases确认即可消除报错。如果选择了<ignore/>,需要手动执行mvn generate-sources命令生成AVRO代码后,将生成的代码目录标记为Source Folder即可正常编译。
- 方案2:修改Eclipse全局m2e配置(仅本地生效,无需修改项目代码)
打开Eclipse菜单栏Window->Preferences->Maven->Lifecycle Mappings,新增规则忽略org.apache.avro:avro-maven-plugin的schema、protocol、idl-protocol三个目标,保存后重启Eclipse再更新项目即可。 - 方案3:提前编译代码后导入
导入项目前先在项目根目录执行mvn generate-sources完成AVRO代码编译,导入Eclipse时勾选Skip Maven plugin execution not covered by lifecycle选项即可正常导入。
内容的提问来源于stack exchange,提问作者Jsingh
相关产品推荐
相关产品推荐

