首页 > 解决方案 > Gradle 避免生成类目录

问题描述

我的 gradle 配置是这样的,所有依赖项和应用程序 jar 都放在 libs 文件夹中。build 目录有以下子目录classesdependency-cache, libs和. 我希望 gradle 只生成库和资源,而不是其他的。执行此操作需要什么 gradle 配置?resourcestmp

我当前的gradle文件:

plugins {
    id 'java'
}

sourceCompatibility = 1.8

task copyToLib(type: Copy) {
    into libsDir
    from configurations.runtime
}

jar {
    dependsOn copyToLib
    manifest {
        attributes(
                'Main-Class': 'ApiTesting'
        )
    }
}


repositories {
    mavenCentral()
}

dependencies {
    ...
}

标签: javagradlejar

解决方案


对您的问题的最初反应是:为什么这些额外的文件夹build有问题?

但仔细想一想,最好的答案是:不要与工具抗争。

您应该将下游任务设计为不关心,而不是阻止它按照约定工作。如果您需要一种非常特殊的格式以供进一步使用,无论是在构建内部还是外部,添加一个CopySync任务将创建该结构从常规build输出到定制的自定义位置是微不足道的。这可以是另一个build子文件夹。


推荐阅读