sme*_*eeb 4 configuration zip plugins gradle
My Gradle构建当前build
在我的项目根目录下的dir 下生成以下目录结构:
myapp/
src/
build.gradle
build/
docs/
groovydoc/* (all Groovydocs)
libs/
myapp-SNAPSHOT.jar
myapp-SNAPSHOT-sources.jar
reports/
codenarc/
main.html
test-results/* (JUnit test results)
Run Code Online (Sandbox Code Playgroud)
我想添加distribution
插件(或任何实现我的目标的插件),让Gradle生成一个具有以下目录结构的ZIP文件:
myapp-SNAPSHOT-buildreport.zip/
tests/
(JUnit tests from build/test-results above)
reports/
main.html (CodeNarc report from build/reports/codenarc above)
api/
(Groovydocs from build/docs above)
source/
myapp-SNAPSHOT-sources.jar (from build/libs above)
bin/
myapp-SNAPSHOT.jar (from build/libs above)
Run Code Online (Sandbox Code Playgroud)
阅读插件的文档后,我无法告诉如何配置它以满足这些需求.很明显我需要运行gradle distZip
,但至于如何实际配置它以产生所需的目录结构,它似乎没有提供任何文档/示例.有任何想法吗?
注意:JAR的版本显然是SNAPSHOT
,并使用-Pversion=SNAPSHOT
命令行参数传递给Gradle构建.
我可能不会使用分发插件而只是创建一个新的自定义Zip
任务.它看起来像这样:
task buildreportZip(type: Zip, dependsOn: build) {
classifier = 'buildreport'
from('build/test-results') {
into 'tests'
}
from('build/reports/codenarc') {
into 'reports'
}
from('build/docs') {
into 'api'
}
from(sourcesJar) { // or whatever you source jar task name is
into 'source'
}
from(jar) {
into 'bin'
}
}
Run Code Online (Sandbox Code Playgroud)
Gradle Distribution插件自动具有默认值(问题是文档没有告诉我们默认值,但Gradle项目默认结构是假定的)所以如果您的Gradle项目相当简单且已经使用src/main/groovy
或者src/main/java
,您通常只需要...
使用CopySpec反转模式给你into{}
(制作一个目录)包含内容from{}
,而不是反过来,如下所示:
apply plugin: 'groovy'
apply plugin: 'eclipse'
apply plugin: 'application'
distributions {
main {
baseName= 'vz_sde_dm'
contents {
into('bin/config') {
from 'config'
}
into('lib/samples') {
from 'samples'
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
注意我不需要from{}
为我定义一个contents{}
,但仅仅into{}s
是因为我已经使用了默认的Gradle Groovy项目布局,并且在我的项目中只在Eclipse中添加了2个额外的文件夹(config
&samples
),但需要将这2个文件夹放到略有不同的位置与我的常规构建文件夹布局相比,我的分发层次结构.
归档时间: |
|
查看次数: |
6004 次 |
最近记录: |