我编写了gradle插件,用于配置war项目。我的问题涉及战争任务的配置。我想更改archiveName和类路径。
class MyPlugin implements Plugin<Project> {
void apply(Project project) {
project.plugins.apply('war')
// do something
configureConfigurations(project)
configureTask(project)
}
void configureTask(final Project project) {
project.war {
archiveName = "${project.war.baseName}.${project.war.extension}"
classpath = project.sourceSets.main.runtimeClasspath - project.configurations.providedRuntime - project.configurations.earModuleRuntime - project.configurations.earLibRuntime
}
project.war {
doFirst {
// just generating the manifest file
}
}
}
void configureConfigurations(final Project project) {
project.configurations {
earModuleCompile
earModuleRuntime.extendsFrom(earModuleCompile)
earLibCompile
earLibRuntime.extendsFrom(earLibCompile)
}
}
}
由于某种原因,gradle将第一个war块解释为源集。这就是为什么它在源集&#39; war&#39;上创建一个名为archiveName和classpath的新属性。我可以用project.war.archiveName
修复它。但我仍然不知道为什么地球上的东西第一个战争块是一个源集合而第二个战争块是doFirst
是任务。
使用此插件的构建文件仅在earLibRuntime
如果有人能向我解释,那就太好了。