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

IntelliJ groovy DSL:如何排除groovy插件编译的文件?

夹谷俊远
2023-03-14

我正在从事一个Java web项目,该项目使用Liquibase groovy DSL管理数据库更改。就本主题而言,它可以是使用*的任何其他第三方库。groovy将文件作为源文件。这项工程是用格雷德尔建造的。在我的一个模块(daobase)的src/main/resources文件夹下,我有groovy文件(changelog01.groovy、master\u changelog.groovy等)。这些文件应该在运行时由liquibase jar加载。

现在,当我尝试在IntelliJ中创建项目时,它会给出以下错误消息:

Groovyc:无法编译Groovy文件:没有为模块“dao base”定义Groovy库。

我知道groovy插件检测*。groovy文件,试图编译它们,但毫无疑问失败了。这些是groovy DSL文件,应该只由第三方liquibase解析器加载,我不需要IntelliJ的groovy插件来尝试编译它们。

我设法想出了两个局部解决方案:1。在intellij中禁用groovy插件。此解决方案的问题是gradle插件依赖于groovy插件,因此在禁用groovy插件时会自动禁用。我需要启用gradle插件。2.排除项目设置中的src/main/resources文件夹--

我希望有人能想出一个更好的解决这个问题的办法。

共有3个答案

艾焱
2023-03-14

我也面临同样的问题。在成功编译并执行我的项目之后,我禁用了groovy插件的设置。

耿珂
2023-03-14

您是否正在使用Gradle Idea插件生成IntelliJ项目?如果是这样,您可以通过gradle将这些groovy文件添加到IntelliJ中的编译器资源列表中,方法是将其添加到build中。格拉德尔:

idea {
  project {
    // customize the .ipr file generation.
    ipr {
      withXml { xmlProvider ->
        def project = xmlProvider.asNode()

        // Add appropriate groovy files to the compiler resources. These files will not be compiled by the groovy compiler but will be copied to the classes directory during compilation.
        def compilerSettings = project.component.find { it.@name == 'CompilerConfiguration' }
        compilerSettings.wildcardResourcePatterns*.appendNode('entry', [name: '*/changelog*.groovy'])
        compilerSettings.wildcardResourcePatterns*.appendNode('entry', [name: '*/master_changelog.groovy'])
      }

    }
  }
}

这很好,因为从gradle生成项目时,您不必记住手动执行此操作。

金皓君
2023-03-14

尝试从编译器的资源列表中删除groovy文件后缀:

设置-

 类似资料:
  • 我正在尝试使用https://github.com/groovy/groovy-android-gradle-plugin使用Android Studio 1.1.0: 我有一些从Android SDK类扩展的Groovy类,我的应用程序Java从Groovy类扩展的类。Groovy类在src/main/groovy下,Java类在src/main/java下。 非常棒: 爪哇: 当我构建项目时,

  • 我在试着做POM。xml生成两个jar文件。一个包含所有类,另一个不包含其中一个类。 我试图排除的文件名为“ExcludeMe1”。爪哇。”我是新来的,但这不是我的第一次牛仔竞技,在下面的代码中,我排除了ExcludeMe1。班但是jar文件的大小保持不变,我相信它仍然包含我排除的类。这就是我的意思。。。 我期望发生的是排除大小为1KB的类文件。因此,我希望得到N和N-1,而不是两个罐子的大小都是

  • 我正在使用Eclipse,正在进行一个J2EE项目。我们正在尝试为单元测试编写Groovy/Spock测试。该项目是一个Maven项目,并为其添加了Groovy特性。问题是,如果我编辑任何Groovy测试类,它都不会被编译。因此,作为Junit运行测试并没有获得最新的更改。我必须运行一个Maven构建,以获取测试类最近的更改。 我的设置, Groovy编译器2.4 检查了另一个问题,它没有多大帮助

  • 那么如何防止插件jar进入war文件呢?多谢了。

  • 在类似的问题中,我找不到充分的答案。我遵循了Groovy的IntelliJ教程,但它确实解决了这个问题。最后,我通过1A4 Maven文件解决了这个问题。 为了更容易地入门,也许您可以帮助我和其他人使用IntelliJ中的Groovy。 我做了什么: 我安装了Groovy SDK 我启动了IntelliJ,创建了一个新的Groovy项目,我可以看到添加了库。 创建我的第一个Groovy类后,提到了

  • 每次我尝试在Windows上用Gradle集成创建一个新的IntelliJ14.1.4项目时,当我在项目中包含了任何Groovy源文件时,在执行“make”命令时都会收到以下错误... 我试过: null 我可以运行命令,该命令可以正确编译,并且可以将构建war部署到应用程序服务器(在我的示例中是Tomcat 7.0.47) 然而,在观看IntelliJ IDEA 13中的Gradle入门(他们没