Now you can just install Liberica JDK pkg-distibution using brew
and will never face the problem mentioned below:
brew tap bell-sw/liberica
brew cask install liberica-jdk11
lazy val other = ProjectRef(file("../../../my-other-project"), "otherSubProjectName") | |
lazy val myProject = project | |
.in(file("./my-project")) | |
.dependsOn(other) |
package example | |
object RecMap { | |
object Record { | |
// use this scope to bound who can see inside the opaque type | |
opaque type Rec[A <: Tuple] = Map[String, Any] | |
object Rec { | |
type HasKey[A <: Tuple, K] = |
import java.io.IOException | |
import scalaz.zio.console.putStrLn | |
import scalaz.zio.{IO, IOApp, IOQueue, Void} | |
import scala.concurrent.duration.Duration | |
sealed trait PongMessages | |
case class Ping(n: Int) extends PongMessages | |
case object Stop extends PongMessages |
//The global script scope | |
def ctx = context(scope: scriptScope()) | |
//What things can be on the script scope | |
contributor(ctx) { | |
method(name: 'pipeline', type: 'Object', params: [body: Closure]) | |
property(name: 'params', type: 'org.jenkinsci.plugins.workflow.cps.ParamsVariable') | |
property(name: 'env', type: 'org.jenkinsci.plugins.workflow.cps.EnvActionImpl.Binder') | |
property(name: 'currentBuild', type: 'org.jenkinsci.plugins.workflow.cps.RunWrapperBinder') | |
property(name: 'scm', type: 'org.jenkinsci.plugins.workflow.multibranch.SCMVar') |
case class Food(ingredients: Seq[String]) | |
class Chef[Pizza <: Chef.Pizza] protected (ingredients: Seq[String]) { | |
import Chef.Pizza._ | |
def addCheese(cheeseType: String): Chef[Pizza with Cheese] = Chef(ingredients :+ cheeseType) | |
def addTopping(toppingType: String): Chef[Pizza with Topping] = Chef(ingredients :+ toppingType) | |
def addDough: Chef[Pizza with Dough] = Chef(ingredients :+ "dough") |
1. Setup a project | |
2. Add groovy SDK support: | |
https://www.bonusbits.com/wiki/HowTo:Add_Groovy_SDK_to_IntelliJ_IDEA | |
3. Download http://(yourjenkinsurl)/job/(yourpipelinejob)/pipeline-syntax/gdsl | |
- this will give you the .gdsl file - download this to the src folder of your project. | |
4. Finally follow this step - right click on the src folder -> Mark directory as -> Sources Root |
Copyright © 2016-2018 Fantasyland Institute of Learning. All rights reserved.
A function is a mapping from one set, called a domain, to another set, called the codomain. A function associates every element in the domain with exactly one element in the codomain. In Scala, both domain and codomain are types.
val square : Int => Int = x => x * x
case class IO[A](unsafePerformIO: () => A) { | |
def map[B](ab: A => B): IO[B] = IO(() => ab(unsafePerformIO())) | |
def flatMap[B](afb: A => IO[B]): IO[B] =IO(() => afb(unsafePerformIO()).unsafePerformIO()) | |
def tryIO(ta: Throwable => A): IO[A] = | |
IO(() => IO.tryIO(unsafePerformIO()).unsafePerformIO() match { | |
case Left(t) => ta(t) | |
case Right(a) => a | |
}) | |
} | |
object IO { |
{-# LANGUAGE DeriveFunctor #-} | |
{-# LANGUAGE TypeOperators #-} | |
{-# LANGUAGE MultiParamTypeClasses #-} | |
{-# LANGUAGE FlexibleInstances #-} | |
{-# LANGUAGE FlexibleContexts #-} | |
{-# LANGUAGE OverlappingInstances #-} | |
module Main where | |
import Control.Monad.Free |