java - 使用 gradle 构建 Java 时跳过部分源代码树

标签 java gradle

假设我有一个想要使用 gradle 构建的 Java 项目,但我希望 gradle 跳过源代码树的某些包/部分。

如果源树有非标准布局,我可以通过以下方式指定:

sourceSets {
    main {
        java {
            srcDirs = ['src']
        }
        resources {
            srcDirs = ['src']
        }
    }
}

有没有办法告诉 gradle 忽略 src/org/example/foo/barproject/ui 中的所有内容,但构建其余部分?如果是这样,怎么办?

最佳答案

这是我的解决方案:

apply plugin: 'java'

sourceSets {
    main {
        java {
            srcDir = ['src']
            exclude "main/*"
            exclude "hello/*"
            exclude "test/*"
        }
    }
}

我的文件夹布局:

$ ls -R src
Library.java hello        main         test

src/hello:
Application.java     HelloController.java

src/main:
java

src/main/java:
Library.java hello

src/main/java/hello:
Application.java     HelloController.java

src/test:
java

src/test/java:
LibraryTest.java

输出:

$ ./gradlew clean build -x test
Creating properties on demand (a.k.a. dynamic properties) has been deprecated and is scheduled to be removed in Gradle 2.0. Please read http://gradle.org/docs/current/dsl/org.gradle.api.plugins.ExtraPropertiesExtension.html for information on the replacement for dynamic properties.
Deprecated dynamic property: "srcDir" on "source set 'main'", value: "[src]".
:clean
:compileJava
:processResources UP-TO-DATE
:classes
:jar
:assemble
:check
:build

BUILD SUCCESSFUL

Total time: 2.935 secs

请告诉我这是否有效。

关于java - 使用 gradle 构建 Java 时跳过部分源代码树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45172207/

相关文章:

java - 以编程方式创建可独立控制的相同 ImageView

java - 按下警报对话框按钮始终返回 0 值

java - 当我添加意式 Espresso 时出现资源错误

gradle - 指定gradle属性文件作为gradlew的命令行参数

java - 不支持不必要地替换不存在的任务

gradle - build.gradle不运行测试 “Couldn' t编译构建文件”

Android Studio 的项目 gradle 文件变了?

java - Spring MVC 试图通过 url 传递变量。 @Path变量

java - 在 Selenium Webdriver 中的复杂表中定位数据

java - 我应该为 mysql 5.6.24 导入哪个 jar 文件