Setting up Gradle Cargo

Breako Breako picture Breako Breako · Jul 28, 2013 · Viewed 8.2k times · Source

I am trying follow this tutorial to set up Grails/ Cargo: https://github.com/bmuschko/gradle-cargo-plugin I wish to use this plugin to deploy wars to local tomcat instances and to start and stop them.

Here is my build.gradle

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'cargo'

sourceCompatibility = 1.5
version = '1.0'
jar {
    manifest {
        attributes 'Implementation-Title': 'Gradle Quickstart', 'Implementation-Version': version
    }
}

repositories {
    mavenCentral()
}

dependencies {
    compile group: 'commons-collections', name: 'commons-collections', version: '3.2'
    testCompile group: 'junit', name: 'junit', version: '4.+'
    classpath 'org.gradle.api.plugins:gradle-cargo-plugin:0.6.1'
    def cargoVersion = '1.3.3'
    cargo "org.codehaus.cargo:cargo-core-uberjar:$cargoVersion",
          "org.codehaus.cargo:cargo-ant:$cargoVersion"

}

cargo {
    containerId = 'tomcat6x'
    port = 9090

    deployable {
        file = file('/Users/me/Documents/gradlemucks/grails_2/hello-world/target/hello-world-0.1.war')
        context = 'helloworld'
    }

    local {
        homeDir = file('/Users/me/developer/servers/apache-tomcat-6.0.37')
        output = file('build/output.log')

        tomcat {
            ajpPort = 9091
        }
    }
}

test {
    systemProperties 'property': 'value'
}

uploadArchives {
    repositories {
       flatDir {
           dirs 'repos'
       }
    }
}

When I do gradle tasks in the terminal I get:

FAILURE: Build failed with an exception.

* Where:
Build file '/Users/me/Documents/workspaces/regress_test/httptests/build.gradle' line: 3

* What went wrong:
A problem occurred evaluating root project 'httptests'.
> Plugin with id 'cargo' not found.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

What are my doing wrong?

Answer

Lundahl picture Lundahl · Jul 28, 2013

The buildscript itself need the cargo dependency so adding:

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies { classpath "org.gradle.api.plugins:gradle-cargo-plugin:0.6"  }
}

should make it able to find the cargo plugin.