我正在尝试使用每个项目类型的gradle配置清单文件。
对于jar,很容易配置清单:
jar {
manifest {
attributes 'Implementation-Title': 'Gradle Corporate plugin',
'Implementation-Version': version,
'Built-By': System.getProperty('user.name'),
'Built-Date': new Date(),
'Built-JDK': System.getProperty('java.version'),
'Built-Gradle': gradle.gradleVersion
}
}
就像战争和耳朵一样容易。
我的问题是,我写了一个所有项目使用的公司插件。
在这个插件中,我需要为所有项目配置清单。
很容易遍历所有项目并确定项目类型,但是为特定项目和类型配置清单有点棘手。
project.allprojects {
configureManifest(it)
}
我正在努力实现以下目标:
private configureManifest(Project project) {
if (isEarPlugin) {
project.ear {
manifest { }
}
} else if (isWarPlugin) {
project.war {
manifest { }
}
} else {
project.jar {
manifest { }
}
}
}
答案 0 :(得分:0)
以下两种方法可以解决问题。
我的耳朵:
private void doManifestEar(Project project) {
project.plugins.withType(EarPlugin) {
project.apply(plugin: 'java')
project.ear {
manifest {
attributes 'Implementation-Title': project.projectDescription,
'Implementation-Version': project.version,
'Built-By': System.getProperty('user.name'),
'Built-Date': new Date(),
'Built-JDK': System.getProperty('java.version'),
'Built-Gradle': project.gradle.gradleVersion
}
}
}
}
为了我的战争:
private void doManifestWar(Project project) {
project.plugins.withType(WarPlugin) {
project.apply(plugin: 'java')
project.war {
manifest {
attributes 'Implementation-Title': project.projectDescription,
'Implementation-Version': project.version,
'Built-By': System.getProperty('user.name'),
'Built-Date': new Date(),
'Built-JDK': System.getProperty('java.version'),
'Built-Gradle': project.gradle.gradleVersion
}
}
}
}