Lars Tackmann
Lars Tackmann

Reputation: 20865

Create a new task that runs a program

I need to define a custom tasks that computes the name of a main class and then runs it. I was thinking about something like this

customTask {
  mainClass = compute main class name based on env
  runMain(mainClass, jvm-args, fork=true)
}

and then in SBT i would be able to run

sbt> custom-task

can this be done in SBT 11.2 ?.

Upvotes: 8

Views: 2392

Answers (2)

vishal
vishal

Reputation: 31

well you can give it a try .. I works fine for me -

lazy val testngRun = inputKey[Unit]("custom run task for testng")

testngRun := {
    val one = (runMain in Compile).fullInput(" org.testng.TestNG -testclass com.pg.acceptance.testcase.PfsLoginServiceTest").evaluated
}

Upvotes: 3

Leo
Leo

Reputation: 777

Late answer but you can create new SBT tasks as mentioned in documentation http://www.scala-sbt.org/release/docs/Detailed-Topics/Tasks#defining-a-new-task

You can run any scala code as the task code. Tasks can also take input arguments.

Pretty much powerful IMO.

Upvotes: 0

Related Questions