我有一个多项目设置.我创建了一个非java项目,其工件是一个zip文件,我将在另一个项目中解压缩.所以这个想法如下
my-non-java-project
build.gradle
------------
apply plugin: 'base'
task doZip(type:Zip) { ... }
task build(dependsOn: doZip) << {
}
artifacts {
archives doZip
}
some-java-project
build.gradle
------------
apply plugin: 'war'
configurations {
includeContent // This is a custom configuration
}
dependency {
includeContent project(':my-non-java-project')
}
task expandContent(type:Copy) {
// Here is where I would like get hold of the all the files
// belonging to the 'includeContent' configuration
// But this is always turning out to be empty. Not sure how do I publish
// non-java content to the local repository (as understood by groovy)
}
Run Code Online (Sandbox Code Playgroud)
所以,我的问题是,如何将非java项目的工件发布到groovy的内部存储库,以便我可以在另一个基于java的项目中获取它?
不完全相信你以后有什么,但这里有一个快速和肮脏的方式来获得进入FileCollection中的:my-non-java-project:doZip任务输出:
project(":my-non-java-project").tasks.getByName("doZip").outputs.files
Run Code Online (Sandbox Code Playgroud)
请注意,archives配置是由Java插件添加的,而不是Base插件.但您仍然可以使用my-non-java-projectOP中的代码定义自定义配置并将其添加到其中:
//in my-non-java-project/build.gradle
configurations {
archives
}
artifacts {
archives doZip
}
Run Code Online (Sandbox Code Playgroud)
然后您可以通过配置访问任务输出,如此(再次,快速和脏):
//in some-java-project/build.gradle
project(":my-non-java-project").configurations.archives.artifacts.files
Run Code Online (Sandbox Code Playgroud)
请注意,您可以使用扩展zip文件的内容zipTree.
如果您需要实际发布由其生成的zip my-non-java-project,您可以在这里阅读.
| 归档时间: |
|
| 查看次数: |
3762 次 |
| 最近记录: |