我们有一个与某些要求已删除的软件包有关,但是我们不想删除代码,因为将来有可能再次需要它。因此,在我们现有的ant构建中,我们只是将该包排除在了jar中之外。这些类由于我们还删除了它们的依赖关系而无法编译,因此它们不能包含在构建中。

我正在尝试模仿Gradle中的功能,如下所示:

jar {
    sourceSets.main.java.srcDirs = ['src', '../otherprojectdir/src']

    include (['com/ourcompany/somepackage/activityadapter/**',
                 ...
        'com/ourcompany/someotherpackage/**'])

    exclude(['com/ourcompany/someotherpackage/polling/**'])
}

即使使用上面的exclude调用(并且我也尝试过不带方括号的尝试),gradle仍在尝试编译polling类,这会导致编译失败。如何防止Gradle尝试编译该软件包?

最佳答案

如果您有一些不想被编译的源,则必须为源声明一个过滤器,而不是为Jar中放置的类文件声明一个过滤器。就像是:

sourceSets {
    main {
        java {
            include 'com/ourcompany/somepackage/activityadapter/**'
            include 'com/ourcompany/someotherpackage/**'
            exclude 'com/ourcompany/someotherpackage/polling/**'
        }
    }
}

07-25 20:25