我应该将 IDL 文件和生成的代码放在 Maven 项目中的什么位置?

Where should I put IDL files and generated code in Maven project?

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

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

- target

现在我想使用Thrift和gRPC,但是我不知道我应该把IDL文件放在哪里,生成的代码放在哪里?有什么 "standard" 或 "best practices" 的建议吗?谢谢你的帮助!

通常,构建过程生成的源文件位于 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?

你将 AIDL 文件放在 'exact' 与你希望生成的文件相同的包中(相对于包),你将 AIDL 文件放在你的 src/ 树和 'generated' 文件将在 'generated' 树中。

  • 来源
    • 主要
      • java
        • 组织
          • 随便
            • 项目
              • 服务
                • 帮助
                  • 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