2017-05-02 17 views
0

我有一个应用了应用程序插件的Gradle构建。应用程序插件还应用分发插件并创建默认main分发,该分发将在bin文件夹中放置启动脚本,并在lib中放置相关项。Gradle - 更改主分布 - 摆脱bin和lib文件夹

现在我想完全删除该默认行为并拥有自己的发行版但具有相同的名称main。更确切地说,我不想binlib文件夹,并希望我的自定义内容。

我知道可以很容易地定义像

distributions { 
    my { 
     // my configuration here 
    } 
} 

一个新的分配,所以我可以经由myDistZip例如产生期望的分布。

但是我想更改main的分布,所以我可以通过简单的distZip(或distTar)生成归档。

我试图删除主要分布(通过distributions.remove(distributions.main)),并创建新的

distributions { 
    main { 
     // my configuration here 
    } 
} 

但失败

Cannot add task ':distZip' as a task with that name already exists. 

我想这仅仅是因为摇篮会为每一个新的分销distZip任务,所以它试图为新的main做到这一点,但distZip任务已经在插件应用期间创建。

那么有什么方法可以改变main分布摆脱binlib文件夹?

摇篮:3.5

回答

1

但我想改变正是主要分布所以我将能够通过简单的distZip(或distTar)生产档案。

好像你没有改变main分布 - 为distribution插件的文件(由application插件自动添加)指出,每个分发,这样你就可以使用gradle myDistZip

但是似乎你应该能够配置现有main分布以及:

distributions { 
    main { 
    contents { 
     // configure 
    } 
    } 
} 

虽然你不能复位,似乎现有的价值,也许你可以使用排除不复制特定的文件夹(见https://docs.gradle.org/current/javadoc/org/gradle/api/file/CopySpec.html