How do I run a task only if an environment variable is defined?

Hi,

I’m using Gradle 2.7 on Mac Yosemite. I have the below task defined in my build.grade script to copy my WAR file to my Tomcat webapps directory …

	task deployToTomcat(type: Copy) {
	    from war.archivePath
	    into "$System.env.CATALINA_HOME/webapps"
	}

How do I run this task only if the environment variable “CATALINA_HOME” is defined?

You can use Task.onlyIf() to accomplish this.

task deployToTomcat(type: Copy) {
    from war.archivePath
    into "$System.env.CATALINA_HOME/webapps"
    onlyIf {
        System.env['CATALINA_HOME'] != null
    }
}
2 Likes