我正在使用Avro测试转换一些文件,按照Avro 1.7.7指南的建议,我已添加了依赖。
<dependency>
<groupId>org.apache.avro</groupId>
<artifactId>avro</artifactId>
<version>1.7.7</version>
</dependency>
除了用于执行代码生成的Avro Maven插件:
<plugin>
<groupId>org.apache.avro</groupId>
<artifactId>avro-maven-plugin</artifactId>
<version>1.7.7</version>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>schema</goal>
</goals>
<configuration>
<sourceDirectory>${project.basedir}/src/main/avro/</sourceDirectory>
<outputDirectory>${project.basedir}/src/main/java/</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
但是这个指南使用shell命令来编译avro schema user.avsc。我想知道如何在eclipse IDE中编译它。
<outputDirectory>${project.basedir}/src/main/java/</outputDirectory>
是错误的:您不希望在src
下生成源代码。生成的源代码应始终放置在target
下,并且不应受到版本控制(如果插件尚未执行此操作,则可以使用build-helper-maven-plugin
将它们添加到buildpath)。 - Tunaki