我应该在哪里放置IDL文件并在Maven项目中生成代码?

时间:2015-12-24 04:12:33

标签: java maven protocol-buffers thrift

我为项目使用标准的Maven目录结构

- src
  - main
    - java
    - resources
    - webapp
  - test
    - java
    - resources

- target

现在我想使用Thrift和gRPC,但我不知道我应该在哪里放置IDL文件以及在何处放置生成的代码?有没有"标准"或者"最佳实践"建议?谢谢你的帮助!

2 个答案:

答案 0 :(得分:1)

通常,构建过程生成的源位于target/generated-sources目录下。

如果您是从第三方工具生成源代码,而这些工具没有或不能与您的构建过程集成,那么您应该将其存储在generated/src/main之类的内容中,以便您知道其下的所有内容生成。

在Intellij中,您可以使用maven默认值,或者如果您在target文件夹之外以及类似generated/src/main

之类的内容,则明确告诉它您拥有生成源的位置

如何在Intellij https://www.jetbrains.com/idea/help/configuring-content-roots.html#generated

中标记目录

内容根解释https://www.jetbrains.com/idea/help/content-root.html

How to configure IntelliJ IDEA and/or Maven to automatically add directories with Java source code generated using jaxb2-maven-plugin?

答案 1 :(得分:1)

您将AIDL文件放在“完全”相同的包中,就像您希望生成的文件一样(关于包),将AIDL文件放在src / tree中,“生成”文件将放在'生成'树。

  • SRC
      • 的java
        • 有机
          • 任何
            • 项目
              • 服务
                • AIDL
                  • POJO2.java
                  • IRemoteService.aidl
                  • IRemoteServiceCallback.aidl
                  • POJO1.aidl

通过这样做,生成的文件将位于'org.whatever.project.services.aidl'包中

这是一个很好的指南。 http://developer.android.com/guide/components/aidl.html

以下是一个示例应用程序: https://github.com/douglascraigschmidt/POSA-15/tree/502d9db2cbd90de3f4de0ed1bb74750004f47f06/ex/AcronymExpander/src/vandy/mooc/model/aidl