我想拆分我的avro模式文件。为了生成源代码,我使用了avro-maven-plugin。我关注了这篇文章:
Can I split an Apache Avro schema across multiple files?
它可以正常工作,但就我而言,我想设定不同的目标,然后由于我导入的文件只是一个模式而不是一个协议而收到关于[ERROR] Failed to execute goal org.apache.avro:avro-maven-plugin:1.8.2:protocol (schemas) on project AvroTestProject: Execution schemas of goal org.apache.avro:avro-maven-plugin:1.8.2:protocol failed: No protocol name specified: ...
的错误消息。
这是我的pom.xml的代码段:
<plugin>
<groupId>org.apache.avro</groupId>
<artifactId>avro-maven-plugin</artifactId>
<version>${avro.version}</version>
<executions>
<execution>
<id>schemas</id>
<phase>generate-sources</phase>
<goals>
<goal>schema</goal>
<goal>protocol</goal>
<goal>idl-protocol</goal>
</goals>
<configuration>
<sourceDirectory>${project.basedir}/src/avro/</sourceDirectory>
<outputDirectory>${project.basedir}/src/</outputDirectory>
<imports>
<import>${project.basedir}/src/avro/TestSchema.avsc</import>
</imports>
</configuration>
</execution>
</executions>
</plugin>
是否有一种仅针对特定目标声明导入的方法?还是有其他解决此问题的可能性?
答案 0 :(得分:0)
问题在于您在const showProductData = Object.values(ProductData).map(function(value) {
return <div>Weight: {value.ProductWeight}</div>;
});
中的目标定义。
因此,可以考虑仅设置avro-maven-plugin
目标,以避免执行schema
和protocol
,因为它与idl-protocol
块中的模式声明冲突。