我正在尝试为我的java Web项目构建一种模板构建脚本。
此模板存储在我的apache Web服务器中。
要在项目中使用它,我使用apply from 'http://myserver/templateWarScript.gradle'
。
最终战争的配置在此模板中完成。
对于我的所有java web项目,我需要将zip文件的内容(包含JavaScript文件,图像等)放入最终的war文件中。 要共享此zip文件,我将其放在我的本地存储库中。
现在,我正试图找到一种方法将其内容纳入我的最后一战。但我找不到办法做到这一点。 我正在尝试将以下行放在我的模板脚本中:
configurations {
zipWebResource
}
dependencies {
zipWebResource group: 'utilities.template', name: 'webResource', version: '1.0', ext: 'zip'
}
//test task
task testZipPath << {
println "zip path:" + configurations.zipWebResource.asPath
}
//
//my war configuration
war {
println "zip path:" + configurations.zipWebResource.asPath
}
如果我在war配置中放入'configurations.zipWebResource.asPath',我会收到一条错误,表明gradle无法找到zip依赖项。
但是,如果我从战争配置中删除它,我可以通过我的测试任务阅读它。
我也尝试在方法中或直接在gradle脚本中读取它,但我遇到了同样的错误。阅读gradle用户指南后,我认为我的问题与配置或/和执行阶段有关。
我想了解为什么我可以在任务中读取 configurations.zipWebResource.asPath 但不能在配置中读取。我的目标是将zip作为依赖项使用,并将其内容放在生成的战争的根目录中
非常感谢。
答案 0 :(得分:0)
将此代码段与apply from:
包含在一起,并将其直接粘贴到构建脚本(替换apply from:
)之间没有语义差异。也许您更改了声明的顺序,或者在其中一个案例中没有在本地存储库中使用zip。
编辑以反映您的新问题:
通常,配置不应在配置时解析,而是仅在执行时解析。在您的情况下,asPath
将触发解决方案。对于外部依赖,它应该工作(但不建议,因为它可能会减慢您的构建)。有可能问题出在其他地方(例如,错误的声明顺序)。
PS:Stack Overflow并不是这种支持的好格式,没有明确的问题。获得Gradle支持的最佳位置是:http://forums.gradle.org