Question

I have a gradle project that builds a war file, and includes a manifest:

war {
    archiveName 'archive.war'
    manifest {
        attributes("Implementation-Title": project.name, "Implementation-Version": version, "Implementation-Timestamp": new Date())
    }
}

This is fine, but if I run a release build (using the gradle-release plugin https://github.com/townsfolk/gradle-release), which updates the project version, then the war file is created with the old version number rather than the new one.

I may be wrong, but I suspect this is happening because the manifest code is running during the Configuration phase rather than the Execution phase. What is the best way to fix this?

Was it helpful?

Solution

Wrapping the manifest section in "doFirst" fixed it. Using "doLast" resulted in an empty manifest file being created.

Working code:

war {
    doFirst {
        manifest {
            attributes("Implementation-Title": project.name, "Implementation-Version": version, "Implementation-Timestamp": new Date())
        }
    }
    archiveName 'infoserverws.war'
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top