当前位置: 首页 > 知识库问答 >
问题:

使用Gradle时如何在IntelliJ IDEA中集成生成的源代码?

陶唯
2023-03-14

我目前正在使用JavaCC(与JavaCC gradle插件从这里)来生成我的一些源代码。项目的其余部分依赖于这些代码。如果我将项目导入IDEA或者清理项目,那么我会得到错误,因为找不到类。然而,构建项目是可行的。

是否可以修改 gradle 文件,以便 IntelliJ(可能还有其他编辑器)在分析代码之前知道生成这些源代码?

生成的代码保存在src/gen/java/中,生成代码的位置通过以下方式显示:

sourceSets {
    gen {
        java {
            srcDir 'src/gen/java'
        }
    }
}

由于IntelliJ正在构建该项目,我认为最简单的方法是:

compileJava.dependsOn <generateSourcesTask>

但是将其添加到gradle文件中并没有效果(可能是因为JavaCC插件已经在这样做了)。

共有1个答案

汪正雅
2023-03-14

您是否尝试将生成的源目录添加到主目录?这样地:

sourceSets {
    main {
        java {
            srcDirs = ["src/main/java", "src/gen/java"]
        }
    } 
}

它适用于我:

compileJava.dependsOn('generateSourcesTask')
 类似资料:
  • 我有一个由许多maven项目组成的应用程序。我在日蚀中工作。一些项目使用Maven插件为Web服务等生成存根类。 当我将项目导入到新的工作区时,我必须发出maven generate sources命令,然后附加源文件夹以在每个项目上构建路径。我处理的应用程序有5-6个以上的项目需要这些步骤。 是否有一个插件可以安装在Eclipse中以获取生成的源代码,或者甚至是一个生成源代码并更新构建路径以保存

  • 我试图生成我的REST API客户端Android使用OpenAPI生成器从build.gradle脚本。这样,我就不必每次规格改变时都运行生成器命令行。理想情况下,这将在我构建/组装我的应用程序时生成,源将最终在java(生成)文件夹中,在那里生成的源可以从代码中访问(这就是BuildConfig.java文件的情况)。 下面是他们官方GitHub的链接,这里是构建。我最终得到的gradle文件

  • 我有一个Maven插件,它为我的java项目生成源代码,并将它们放在“target/generated sources”文件夹中。我在编译时需要这些源代码。我想在我的项目中有它们,同时修改它,已经生成。当然,我想把它们放在“src”文件夹下的正确文件夹中,而不是放在“target/generated sources”文件夹中。我如何使用Maven来组织它? 换句话说,我希望能够: > 通过运行我的

  • 我还被告知要做的一件事是将带有Lombok注释的代码放在中,而不是放在中。我假设我保持了与中相同的包目录结构。 这看起来有点奇怪,但我这样做了,并且lombok生成了包含所有getter/setter/equals/hashcode等方法的源文件。它们被放置在例如中。这是我在使用其他代码生成工具(如XJC)后所期望的。 我的问题是:如何使生成的源代码对eclipse和编译环境“可见”?我到处都是编

  • 这类似于这个问题,但我们用Gradle代替。假设我们在构建脚本中直接使用jOOQ的代码生成,正如文档中所描述的那样。 有两个问题。首先,我们将向生成器配置中添加一个新的策略,这应该很简单: 然而,如果我们打印得到的XML配置,名称元素就会被神秘地省略(也会被悄悄地省略): 其次,可以使用什么机制来预编译生成器策略类()并使其在构建脚本的类路径中可用?这里有一个可能的问题:策略代码依赖于jOOQ的c

  • 我正在尝试从多个 WSDL 文件生成 Axis2 (v1.6.1) Web 服务客户端代码,以便我可以在单个项目中拥有多个 Web 服务客户端。我正在使用 Ant 通过代码生成任务生成源代码。 因此,我需要使用自定义命名空间来打包映射,以使每个 Web 服务客户端的代码与其他客户端的代码分开,以避免冲突。 下面是一个示例 WSDL 文件中的命名空间: 我已经设法将生成代码的主体放入适当的包中。我已