我有一个独立的java项目,它使用struct定义文件生成一组java文件来输出目录。所有java源文件都具有相同的包名称。现在我想在Maven中做到这一点。 maven插件中是否有一个选项来生成源,然后构建jar,从而消除用于生成此源的所有源文件?
答案 0 :(得分:0)
惯用的方法是创建一个Maven插件,该插件运行生成Java源文件的Java代码。
创建maven插件并不需要太多工作。创建一个包装为maven-plugin
的新maven项目,添加代码生成器作为插件的依赖项。实现一个找到结构定义文件并运行代码生成器的mojo。将插件目标绑定到generate-source阶段,并将生成的代码输出到target/generated-sources/a-name
。该插件可以将此目录添加为源根目录,以便在MavenProject
对象和编译器插件上进行编译,并编译代码。
然后,您可以将插件添加到要为其生成代码的Maven项目中。 Maven将在generate-sources
阶段运行它,在compile
阶段编译输出并将类文件放在package
阶段的jar中。
https://maven.apache.org/guides/plugin/guide-java-plugin-development.html