All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.carrotgarden.maven.scalor.CompileMojo.scala Maven / Gradle / Ivy

package com.carrotgarden.maven.scalor

import org.apache.maven.plugin.AbstractMojo
import org.apache.maven.plugins.annotations._
import org.apache.maven.execution.MavenSession
import org.apache.maven.project.MavenProject
import org.apache.maven.plugin.BuildPluginManager
import org.apache.maven.plugin.MojoFailureException
import org.sonatype.plexus.build.incremental.BuildContext

import com.carrotgarden.maven.tools.Description

import A.mojo._

/**
 * Shared compiler mojo interface.
 */
trait CompileAnyMojo extends AbstractMojo
  with base.Mojo
  with base.Build
  with base.ParamsCompiler
  with resolve.Maven
  with zinc.Params
  with zinc.ParamsRegex
  with zinc.Compiler
  with zinc.Resolve {

  @Description( """
  Flag to skip compile execution: compile-*.
  """ )
  @Parameter(
    property     = "scalor.skipCompile", //
    defaultValue = "false"
  )
  var skipCompile : Boolean = _

  def performCompile() : Unit = {
    zincPerformCompile()
  }

  override def perform() : Unit = {
    if ( skipCompile || hasSkipMojo ) {
      reportSkipReason( "Skipping disabled goal execution." )
      return
    }
    performCompile()
  }

}

@Description( """
Compile Java and Scala sources in all compilation scopes.
Invokes goals: compile-*
""" )
@Mojo(
  name                         = A.mojo.`compile`,
  defaultPhase                 = LifecyclePhase.COMPILE,
  requiresDependencyResolution = ResolutionScope.TEST
)
class CompileArkonMojo extends CompileAnyMojo
  with zinc.CompilerMacro
  with zinc.CompilerMain
  with zinc.CompilerTest {

  override def mojoName = A.mojo.`compile`

  override def zincBuildCache = throwNotUsed

  override def performCompile() : Unit = {
    executeSelfMojo( A.mojo.`compile-macro` )
    executeSelfMojo( A.mojo.`compile-main` )
    executeSelfMojo( A.mojo.`compile-test` )
  }

}

@Description( """
Compile Java and Scala sources in compilation scope=macro.
A member of goal=compile.
""" )
@Mojo(
  name                         = A.mojo.`compile-macro`,
  defaultPhase                 = LifecyclePhase.COMPILE,
  requiresDependencyResolution = ResolutionScope.COMPILE
)
class CompileMacroMojo extends CompileAnyMojo
  with zinc.CompilerMacro {

  override def mojoName = A.mojo.`compile-macro`

  @Description( """
    Flag to skip goal execution: compile-macro.
    """ )
  @Parameter(
    property     = "scalor.skipCompileMacro", //
    defaultValue = "false"
  )
  var skipCompileMacro : Boolean = _

  override def hasSkipMojo = skipCompileMacro

}

@Description( """
Compile Java and Scala sources in compilation scope=main.
A member of goal=compile.
""" )
@Mojo(
  name                         = A.mojo.`compile-main`,
  defaultPhase                 = LifecyclePhase.COMPILE,
  requiresDependencyResolution = ResolutionScope.COMPILE
)
class CompileMainMojo extends CompileAnyMojo
  with zinc.CompilerMain {

  override def mojoName = A.mojo.`compile-main`

  @Description( """
  Flag to skip goal execution: compile-main.
  """ )
  @Parameter(
    property     = "scalor.skipCompileMain", //
    defaultValue = "false"
  )
  var skipCompileMain : Boolean = _

  override def hasSkipMojo = skipCompileMain

}

@Description( """
Compile Java and Scala sources in compilation scope=test.
A member of goal=compile.
""" )
@Mojo(
  name                         = A.mojo.`compile-test`,
  defaultPhase                 = LifecyclePhase.TEST_COMPILE,
  requiresDependencyResolution = ResolutionScope.TEST
)
class CompileTestMojo extends CompileAnyMojo
  with zinc.CompilerTest {

  override def mojoName = A.mojo.`compile-test`

  @Description( """
  Flag to skip goal execution: compile-test.
  """ )
  @Parameter(
    property     = "scalor.skipCompileTest", //
    defaultValue = "false"
  )
  var skipCompileTest : Boolean = _

  override def hasSkipMojo = skipCompileTest

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy