Вопрос

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?

Это было полезно?

Решение

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'
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top