Gradle:从编译中排除,但仍具有自动补全功能

时间:2018-09-17 09:24:35

标签: java gradle intellij-idea groovy

首先是一些背景:

我目前正在为内部工具和脚本重构我们的应用程序,并且遇到了一些所谓的“美容问题”。

应用程序的基本结构不应包含正在创建的脚本,这些脚本将由应用程序根据要求下载。想象一下它就像一个内部工具的AppStore。

但是要让新存储库中的开发人员可以自动创建这些脚本的选项,我正在寻找一种方法来在IntelliJ中将外部文件夹包括到索引文件中,而不是将整个文件夹添加到编译任务。

文件夹结构是这样的:

(1) ./ScriptSuite/scripts/
(2) ./src/main/

(2)中的所有后端源,包括实用程序和数据库连接等。(1)中的groovy脚本文件可以根据请求动态加载。

我想避免让(2)中的脚本引起更早的混乱,因为有时候,如果它是在应用程序启动时编译的脚本或在应用程序启动后从我们的服务器下载的脚本,我们就无法区分。

我尝试通过以下方式将(1)添加到build.gradle中:

sourceSets {
    main {
        groovy {
            srcDirs {
                'src/main/groovy'
            }
            srcDir {
                'ScriptSuite/scripts'
            }
        }
    }
}

但是随后这些文件将包含在App Start的编译中,我试图避免这样做,因为这些文件应该在运行时由GroovyScriptEngine进行编译。另外(1)也不包含在推送到存储库中,我们将它们托管在S3存储桶中,并提供了其他用于版本控制的工具。

有效的方法是在IntelliJ本身中添加(1)作为模块源文件夹,但这只是客户端,不会被推送到存储库中,因此每个人都必须自己配置它(不好) 。

有人知道如何用gradle解决这个问题吗?感谢您的帮助或提示!

0 个答案:

没有答案