Aliaksei
Aliaksei

Reputation: 1457

Gradle short task

For fust build project I use such command

gradle clean build -x checkstyleMain -x checkstyleTest -x findbugsMain -x findbugsTest -x test

How I can create short task for this? Something like this

task short {
  clean
//  build-x checkstyleMain -x checkstyleTest -x findbugsMain -x findbugsTest -x test
}

I have error with -x

UPDATE

I add such

gradle.taskGraph.whenReady {
  if (gradle.taskGraph.hasTask(":fastRun")) {
    checkstyleMain.enabled = false
    checkstyleTest.enabled = false
    findbugsMain = fasle
    findbugsTest = false
    test = false
  }
}

task fastRun {
//  clean
//  build
}

And run

gradle clean build fastRun

But all tasks run =(

Upvotes: 0

Views: 198

Answers (3)

Louis Jacomet
Louis Jacomet

Reputation: 14500

Gradle is not lifecycle based the way Maven is. Instead of asking for a task that includes all these other tasks you do not want to do, you are better off finding a task that does what you want without including all these others.

For example, assuming you are using the java plugin:

  1. assemble: will create all archives in the project, but not run any tests or checks
  2. compileTestJava: will compile all main and test Java classes but will not run tests or create binaries. Unless their creation is required by a different project in a multi-project build.
  3. ???: some task that maybe does exactly what you want

And if point 3 has no answer for you, you can define a new task that will depend only on what you want to achieve and not the rest.

See the Java plugin documentation for an exhaustive list of the tasks added, including the high level ones.

Upvotes: 1

Dui Samarasinghe
Dui Samarasinghe

Reputation: 247

You can add the following codes to skip the tasks,

gradle.startParameter.excludedTaskNames += "testClasses"
gradle.startParameter.excludedTaskNames += "test"

Upvotes: 0

Stanislav
Stanislav

Reputation: 28106

Unfortunately, usual ways of skipping tasks won't work in your case just out of the box.

But you can use a TaskGraph to check whether your custom task will be executed and if it'll be, disable all the tasks you don't want to be executed. For that, you need to add such a configuration snippet:

gradle.taskGraph.whenReady {
    if (gradle.taskGraph.hasTask(":short")) {
        checkstyleMain.enabled = false
        checkstyleTest.enabled = false
        // any other task you want to skip...
    }
}

This snippet should be placed into the root of the build skript. Just note, that task names could differ depending on the project structure you have.

It's waiting until the task graph is ready and if it has a task named short (that means, that this task will be executed), then it disables some other tasks.

Upvotes: 0

Related Questions