在 gradle 中为每个项目类型配置清单
Configure manifest per project type in gradle
我正尝试在每个项目类型 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
}
}
对于 war 和耳朵来说同样容易。
我的问题是,我写了一个所有项目都使用的公司插件。
在这个插件中,我需要为所有项目配置清单。
遍历所有项目并确定项目类型很容易,但是为特定项目和类型配置清单有点棘手。
project.allprojects {
configureManifest(it)
}
我正在努力实现类似的目标:
private configureManifest(Project project) {
if (isEarPlugin) {
project.ear {
manifest { }
}
} else if (isWarPlugin) {
project.war {
manifest { }
}
} else {
project.jar {
manifest { }
}
}
}
以下两种方法可以解决问题。
为了我的耳朵:
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
}
}
}
}
我的 war:
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
}
}
}
}
我正尝试在每个项目类型 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
}
}
对于 war 和耳朵来说同样容易。
我的问题是,我写了一个所有项目都使用的公司插件。
在这个插件中,我需要为所有项目配置清单。
遍历所有项目并确定项目类型很容易,但是为特定项目和类型配置清单有点棘手。
project.allprojects {
configureManifest(it)
}
我正在努力实现类似的目标:
private configureManifest(Project project) {
if (isEarPlugin) {
project.ear {
manifest { }
}
} else if (isWarPlugin) {
project.war {
manifest { }
}
} else {
project.jar {
manifest { }
}
}
}
以下两种方法可以解决问题。
为了我的耳朵:
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
}
}
}
}
我的 war:
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
}
}
}
}