Groovy 초보자를 위한 스크립트 튜토리얼

⚡ 스마트 요약

Groovy 스크립트는 객체 지향 언어입니다. Java JVM 바이트코드로 컴파일되는 플랫폼입니다. 동적 유형을 추가합니다.ping클로저 및 간결한 구문을 사용하여 Java그리고 그것은 동력을 공급합니다 Jenkins 파이프라인, Gradle 건물과 SoapUI 주장.

  • 🧩 Java 호환 가능 : 가장 유효한 Java 코드는 변경 없이 컴파일됩니다. Groovy그래서 학습 비용이 매우 낮게 유지됩니다.
  • ⚡ Less 기본 문구: 클래스, main 메서드 및 System.out 호출을 하나의 println 줄로 대체합니다. Java 요구.
  • 🔀 다이내믹 타입ping: `def` 키워드를 사용하면 하나의 변수에 정수와 런타임 시 문자열을 동시에 저장할 수 있습니다.
  • 🔁 컴팩트 루프: upto, times, step 메서드는 장황한 C 스타일 for 루프를 한 줄로 대체합니다.
  • 📦 네이티브 컬렉션: 리스트와 맵은 리터럴 구문 외에도 pop, keySet, sort와 같은 도우미 함수를 가지고 있습니다.
  • 🧠 휴관 : 코드 블록은 객체처럼 동작하며, 매개변수를 받고, 값을 반환하며, 다른 클로저 안에 중첩될 수 있습니다.
  • ⚙️ 세 가지 도구: groovysh는 셸을 제공하고, groovyConsole은 GUI를 제공하며, groovy는 스크립트 파일을 직접 실행합니다.

Groovy 초보자를 위한 스크립트 튜토리얼

무엇이 Groovy 스크립트?

아파치 Groovy 객체지향적입니다. Java 구문 호환 프로그래밍 언어는 다음을 위해 만들어졌습니다. Java 플랫폼. 이 동적 언어는 다음과 유사한 많은 기능을 가지고 있습니다. Python루비, 스몰토크, 펄. Groovy 소스 코드가 컴파일됩니다. Java 바이트코드로 작성되었기 때문에 어떤 플랫폼에서든 실행될 수 있습니다. Java 가상 머신이 설치되었습니다. Groovy 또한, 보이지 않는 곳에서 많은 작업을 수행하기 때문에 일반적인 앱보다 더 민첩하고 역동적으로 느껴집니다. Java.

A Groovy 스크립트 단순히 .groovy 문장이 포함된 파일 Groovy 실행하기 전에 생성된 클래스로 감싸줍니다. 그렇기 때문에 클래스나 코드를 작성하지 않고도 한 줄짜리 파일을 실행할 수 있는 것입니다. main 방법. Groovy 따라서 스크립팅 언어로 사용할 수 있습니다. Java 엔터프라이즈급 기능을 제공하면서도 플랫폼을 유지합니다. Java이 소프트웨어는 DSL 지원, 클로저, 선택적 동적 유형과 같은 생산성 기능을 추가합니다.ping다른 일부 언어와는 달리, 이 언어는 보조적인 역할을 하도록 설계되었습니다. Java그것을 대체하는 것이 아닙니다.

💡 팁: Groovy 5.0은 현재 안정적인 릴리스 버전이며 JDK 11 이상을 대상으로 합니다. Groovy 4.0 버전은 JDK 8 프로젝트에서 계속 사용할 수 있습니다. Groovy 6.0 버전은 JDK 17용 알파 버전입니다. 버전을 선택하기 전에 항상 공식 다운로드 페이지의 시스템 요구 사항 표를 확인하십시오.

Groovy?

다음은 여러분이 이 방법을 사용하고 배워야 하는 주요 이유입니다. Groovy:

  • Groovy 민첩하고 역동적인 언어입니다.
  • 기존의 모든 시스템과 완벽하게 통합됩니다. Java 객체와 라이브러리.
  • 쉽고 자연스럽게 느껴집니다. Java 개발자.
  • 이 코드는 동일한 기능을 하는 코드보다 더 간결하고 의미가 명확합니다. Java 암호.
  • 내부에서는 원하는 만큼 많이 또는 적게 사용하실 수 있습니다. Java 분야의 다양한 어플리케이션에서 사용됩니다.
  • 표준으로 실행됩니다 Java 가상 기기따라서 별도의 런타임이 필요하지 않습니다.

Groovy 연혁

  • 2003 : James S가 시작했습니다trac한과 밥 맥Whirter.
  • 2004 : 에 제출됨 Java 공동체 절차는 JSR 241로 진행되었으나, 이후 철회되었습니다.
  • 2005 : 다시 켜졌습니다 track는 Jeremy Rayner와 Guillaume Laforge가 지었습니다.
  • 2007 : Groovy 1.0개가 출시되었습니다.
  • 2012 : Groovy 2.0개가 출시되었습니다.
  • 2014 : Groovy 2.3 버전이 JDK 8 공식 지원과 함께 출시되었습니다.
  • 2015 : Groovy 아파치 소프트웨어에서 최고 수준의 프로젝트가 되었습니다. Foundation.
  • 2022 : Groovy 4.0 버전이 출시되었으며, Maven 좌표는 다음으로 이동되었습니다. org.apache.groovy.
  • 2025 : Groovy JDK 11 이상 버전용 5.0 버전이 출시되었습니다.

특징 Groovy

  • 리스트, 맵, 범위 및 정규 표현식 리터럴.
  • 멀티메서드(런타임 메서드 디스패치) 및 메타프로그래밍.
  • Groovy 클래스와 스크립트는 일반적으로 다음 위치에 저장됩니다. .groovy 파일.
  • 스크립트에는 다음이 포함됩니다. Groovy 클래스 선언이 없는 명령문.
  • 스크립트에는 클래스 정의 외부의 메서드 정의도 포함될 수 있습니다.
  • Groovy 코드는 컴파일되어 기존 시스템과 완벽하게 통합될 수 있습니다. Java 응용 프로그램.
  • 맵, 리스트 및 정규 표현식에 대한 언어 수준 지원.
  • 폐쇄 지원, 동적 유형ping그리고 메타 객체 프로토콜.
  • 정적 및 동적 유형 모두 지원ping, 연산자 과부하 문제도 있습니다.
  • 선택적 정적 타입 검사 @TypeChecked @CompileStatic 주석.

설치하는 방법 Groovy

단계 1) 당신이 가지고 있는지 확인 Java 설치.

단계 2) We Buy Orders 신청서를 클릭하세요. https://groovy.apache.org/download.html 를 클릭하고 Windows 설치 프로그램 링크.

Groovy 설치 프로그램 링크가 포함된 다운로드 페이지

참고: 설치할 수도 있습니다. Groovy 바이너리 Zip 파일에서 압축을 풀거나, SDKMAN!, Homebrew, Scoop, Chocolatey와 같은 패키지 관리자를 통해 설치하거나, ​​또는 사용 중인 프로그램의 플러그인으로 설치할 수 있습니다. Java IDE. 이번에 Groovy 우리는 이 과정을 고수할 것입니다. Windows 설치 관리자.

단계 3) 다운로드한 설치 프로그램을 실행하세요. 언어를 선택하고 확인을 클릭하세요.

Groovy 설치 프로그램 언어 선택 대화 상자

단계 4) 환영 화면에서 다음을 클릭하세요.

Groovy 설치 프로그램 환영 화면

단계 5) 라이선스 약관에 동의합니다.

Groovy 설치 프로그램 라이선스 계약 화면

단계 6) 설치할 구성 요소를 선택하고 다음을 클릭하십시오.

Groovy 설치 프로그램 구성 요소 선택 화면

단계 7) 설치 디렉토리를 선택하고 다음을 클릭하십시오.

Groovy 설치 프로그램 설치 디렉토리 화면

단계 8) 시작 메뉴 폴더를 선택하고 다음을 클릭하세요.

Groovy 설치 프로그램 시작 메뉴 폴더 화면

단계 9) 설치가 완료되면 경로는 기본값 그대로 두고 다음을 클릭하십시오.

Groovy 설치 프로그램 환경 경로 화면

단계 10) 파일 연결 옵션을 확인하고 다음을 클릭하세요.

Groovy 설치 프로그램 파일 연결 화면

단계 11) 시작 메뉴에서 다음을 검색하세요. Groovy 설치를 확인하려면 콘솔을 사용하십시오.

시작 메뉴 검색 표시 Groovy 콘솔 바로가기

⚠️ 경고: The Windows 이 설치 프로그램은 커뮤니티에서 제공한 결과물이며 공식 Apache 릴리스가 아닙니다. 조직에서 서명된 Apache 다운로드가 필요한 경우 바이너리 Zip 배포판을 사용하고 해당 파일의 유효성을 검증하십시오. .asc 서명 및 .sha256 체크섬을 사용하세요.

Groovy Hello World 예

예를 들어 "Hello World"라는 간단한 문자열을 출력하고 싶다고 가정해 봅시다. Java코드는 다음과 같습니다.

public class Demo {
    public static void main(String[] args) {
        System.out.println("Hello World");
    }
}

출력:

Hello World

위 코드는 두 가지 경우 모두에서 유효합니다. Java Groovy, 때문에 Groovy 거의 모든 것을 받아들입니다 Java 구문. 장점은 다음과 같습니다. Groovy 클래스 선언, 공개 메서드, 그리고 전체 경로를 포함하는 print 호출을 없애고 단 한 줄로 동일한 출력을 얻을 수 있다는 것입니다.

println "Hello World"

출력:

Hello World
  • 세미콜론은 필요 없습니다.
  • 수업이나 별도의 절차가 필요하지 않습니다. main 방법.
  • System.out.println 로 감소된다 println.

Groovy 변수

In Java정적 바인딩이 필수적이므로 변수의 유형을 미리 선언해야 합니다.

public class Demo {
    public static void main(String[] args) {
        int x = 104;
        System.out.println(x);
        //x = "Guru99";
    }
}

출력:

104

위 예시에서는 키워드를 사용하여 변수의 데이터 형식을 미리 선언했습니다. int부동 소수점 숫자를 선언하려면 `float` 키워드를 사용합니다. float or double.

문자열 값을 할당하려고 하면 int (5번째 줄의 주석을 해제하면) 다음과 같은 컴파일 오류가 발생합니다.

Demo.java:5: error: incompatible types: String cannot be converted to int
x = "Guru99";

대조적으로, Groovy 동적 유형을 지원합니다ping변수는 키워드를 사용하여 정의됩니다. def또한, 변수의 타입을 미리 선언할 필요가 없습니다. 런타임이 변수 타입을 자동으로 파악하며, 나중에 타입을 변경할 수도 있습니다.

def x = 104
println x.getClass()
x = "Guru99"
println x.getClass()

출력:

class java.lang.Integer
class java.lang.String

In Groovy 여러 줄로 된 문자열도 만들 수 있습니다. 단, 문자열을 세 개의 따옴표로 묶어야 합니다.

def x = """Groovy
at
Guru99"""
println x

출력:

Groovy
at
Guru99

참고 : 다음과 같은 명시적 유형을 계속 사용할 수 있습니다. byte, short, int예산 및 long in Groovy하지만 타입을 명시적으로 선언하면 동적으로 변경할 수 없습니다.

int x = 104
println x
x = "Guru99"

출력:

104
Caught: org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object 'Guru99' with class 'java.lang.String' to class 'int'
org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object 'Guru99' with class 'java.lang.String' to class 'int'
    at jdoodle.run(jdoodle.groovy:3)
Command exited with non-zero status 1

Groovy Opera토르

연산자는 컴파일러에게 특정 수학적 또는 논리적 연산을 수행하도록 지시하는 기호입니다. Groovy 다음 다섯 가지 통신 사업자군을 지원합니다.

  • 산술 연산자: 더하기(+), 빼기tract(-), 곱하기(*), 나누기(/), 나머지(%), 증가(++), 감소(–).
  • 관계 연산자: 같음(==), 같지 않음(!=), 미만(<), 이하(<=), 초과(>), 이상(>=).
  • 논리 연산자: 그리고 (&&), 또는 (||), (!)가 아닙니다.
  • 비트 연산자: 그리고(&), 또는(|), 배타적 논리합(^), 보완(~).
  • 할당 연산자: 할당(=) 및 복합 형태(+=), (-=), (*=), (/=), (%=).

Groovy 몇 가지 연산자를 추가합니다. Java 해당 기능이 없으며, null 체크 관련 반복적인 코드를 많이 제거했습니다.

Opera바위 산 기술설명
?. 안전한 탐색을 제공합니다. 왼쪽이 null일 경우 NullPointerException을 발생시키는 대신 null을 반환합니다.
?: 엘비스 연산자. 참이면 왼쪽 항을, 그렇지 않으면 오른쪽 항을 반환합니다.
<=> 우주선 연산자. compareTo에 위임하며 정렬 클로저 내부에서 유용합니다.
==~ 정규 표현식 일치 여부. 문자열 전체가 패턴과 일치하는 경우에만 true를 반환합니다.

Groovy 루프

In Java카운팅 루프는 다음과 같이 정의할 수 있습니다.

public class Demo {
    public static void main(String[] args) {
        for (int x = 0; x <= 5; x++) {
            System.out.println(x);
        }
    }
}

출력:

0
1
2
3
4
5

다음과 같은 결과를 얻을 수 있습니다. Groovy 와 더불어 upto 이 방법은 양쪽 경계를 모두 포함합니다.

0.upto(5) { println "$it" }

출력:

0
1
2
3
4
5

여기에 it `$`는 클로저의 암묵적인 매개변수이며, 현재 반복의 값을 저장합니다. 다음 코드를 살펴보세요.

2.upto(4) { println "$it" }

출력:

2
3
4

당신은 또한 사용할 수 있습니다 times 이 메서드는 항상 0에서 시작하여 호출하는 숫자보다 하나 작은 값에서 멈춥니다. 따라서 0부터 5까지 출력하려면 6개의 호출이 필요합니다.

6.times { println "$it" }

출력:

0
1
2
3
4
5

이제 0, 2, 4를 출력하고 싶다고 가정해 봅시다. Java for 루프.

public class Demo {
    public static void main(String[] args) {
        for (int x = 0; x <= 5; x=x+2) {
            System.out.println(x);
        }
    }
}

출력:

0
2
4

당신은을 사용할 수 있습니다 step 동일한 결과를 얻기 위한 방법입니다. 두 번째 인수는 증분이고, 첫 번째 인수는 배타적 상한입니다.

0.step(5, 2) { println "$it" }

출력:

0
2
4

Groovy 의사 결정

Groovy 재사용합니다 Java 조건문을 추가하고 훨씬 더 유연한 기능을 제공합니다. switch아래 표는 선택 가능한 옵션들을 요약한 것입니다.

성명서 기술설명
if 문 에서와 같이 Javaif 문의 본문은 조건이 참일 때 실행됩니다.
if/else 문 if 문의 조건이 먼저 평가됩니다. 조건이 참이면 if 블록 안의 문장들이 실행되고 else 블록은 건너뛰어집니다. 조건이 거짓이면 else 블록 안의 문장들이 대신 실행됩니다.
중첩 if 문 if 블록 내에서 추가적인 조건을 테스트해야 할 때 사용됩니다.
switch 문 중첩된 if-else 문은 조건이 많아지면 읽기 어려워집니다. switch 문은 동일한 논리를 더 쉽게 읽을 수 있도록 해줍니다. Groovy케이스 레이블은 값, 클래스, 범위, 정규 표현식 또는 클로저가 될 수 있습니다.
중첩된 switch 문 Groovy 또한 하나의 switch 문을 다른 switch 문 안에 넣을 수 있습니다.

Groovy 명부

리스트 구조를 사용하면 데이터 항목 모음을 저장할 수 있습니다. Groovy리스트는 객체 참조의 시퀀스를 저장하고 해당 시퀀스에서 각 요소의 위치를 ​​유지합니다. 리스트 리터럴은 쉼표로 구분되고 대괄호로 묶인 일련의 객체로 작성됩니다.

예 Groovy 기울기:

  • 문자열 목록: ['Angular', 'Nodejs']
  • 혼합 객체 참조 목록: ['Groovy', 2, 4, 2.6]
  • 정수 값 목록: [16, 17, 18, 19]
  • 빈 목록: []

다음 목록 메서드를 사용할 수 있습니다. Groovy.

방법 기술설명
더하다() 리스트의 끝에 새 값을 추가합니다.
contains () 리스트에 특정 값이 포함되어 있으면 true를 반환합니다.
가져 오기() 지정된 위치에 있는 요소를 반환합니다.
비었다() 리스트에 요소가 없으면 true를 반환합니다.
마이너스() 원래 리스트의 요소들 중에서 지정된 컬렉션에 있는 요소들을 제외한 나머지 요소들로 구성된 새로운 리스트를 생성합니다.
을 더한() 원본의 요소와 주어진 컬렉션의 요소를 합쳐 새로운 리스트를 생성합니다.
팝() 리스트에서 마지막 항목을 제거하고 반환합니다.
없애다() 지정된 위치의 요소를 제거합니다.
역전() 원본 리스트의 요소들을 역순으로 배열한 새로운 리스트를 생성합니다.
크기() 리스트에 있는 요소의 개수를 반환합니다.
종류() 정렬된 리스트를 반환합니다.

다음을 고려하세요 Groovy 스크립트 예시.

def y = ["Guru99", "is", "최고의", "for", "Groovy"]
println y
y.add("Learning")
println(y.contains("is"))
println(y.get(2))
println(y.pop())

출력:

[Guru99, is, 최고의, for, Groovy]
true
최고의
Learning

첫 번째 줄은 원래의 5개 요소로 이루어진 리스트를 출력합니다. 왜냐하면 add() 아직 실행되지 않았습니다. get(2) 이후 "최고의"를 반환합니다. Groovy 리스트는 0부터 시작하는 인덱스를 사용합니다. pop() 해당 항목이 마지막에 추가되었기 때문에 "학습"을 반환합니다.

Groovy 지도

A Groovy 맵은 키-값 쌍의 모음입니다. 키는 단순 식별자일 경우 따옴표가 필요하지 않으므로 맵 리터럴을 매우 간결하게 유지할 수 있습니다.

예 Groovy 지도:

  • [tutorial: 'Java', language: 'Groovy'] 두 개의 키-값 쌍으로 이루어진 컬렉션입니다.
  • [:] 빈 지도를 나타냅니다.

다음은 사용 가능한 맵 메서드 목록입니다. Groovy.

방법 기술설명
포함키() 주어진 키가 맵에 포함되어 있는지 확인합니다.
가져 오기() 맵에서 해당 키를 찾아 일치하는 값을 반환합니다. 항목이 없으면 null을 반환합니다.
keySet () Map의 키 집합을 반환합니다.
놓다() 지정된 값을 주어진 키와 연결합니다. 맵에 이미 맵이 있는 경우ping 해당 키에 대해 기존 값이 새 값으로 대체됩니다.
크기() 키-값 맵의 개수를 반환합니다.pings.
값 () 값들의 컬렉션 뷰를 반환합니다.

Groovy 예:

def y = [fName:'Jen', lName:'Cruise', sex:'F']
print y.get("fName")

출력:

Jen

Groovy 마감

A Groovy 클로저는 객체로 감싸진 코드 블록입니다. 메서드나 함수처럼 동작하지만, 변수에 저장하여 다른 값처럼 전달할 수 있습니다.

간단한 클로저의 예:

def myClosure = {
    println "My First Closure"
}
myClosure()

출력:

My First Closure

클로저는 매개변수를 받을 수 있습니다. 식별자 목록은 쉼표로 구분되며, 화살표(->)는 매개변수 목록의 끝을 나타냅니다.

def myClosure = {
    a, b, c ->
    y = a + b + c
    println y
}
myClosure(1, 2, 3)

출력:

6

클로저는 값을 반환할 수도 있습니다.

def myClosure = {
    a, b, c ->
    return (a + b + c)
}
println(myClosure(1, 2, 3))

출력:

6

매개변수 목록을 선언하지 않으면, Groovy 하나의 암시적 매개변수를 제공합니다. it클로저는 다른 클로저에 전달될 수도 있는데, 이는 컬렉션 메서드와 같은 방식과 정확히 같습니다. each, collect예산 및 findAll 작업.

Groovy 도구

제품에 포함된 세 가지 중요한 도구를 살펴보겠습니다. Groovy 분포:

  1. 그루비쉬: 명령줄에서 코드를 대화형으로 실행합니다.
  2. 그루비콘솔: 대화형 코드 실행을 위한 그래픽 창.
  3. 멋지다: 실행 Groovy Perl이나 다른 언어를 실행하는 것과 같은 방식으로 스크립트 파일을 실행합니다. Python 스크립트.

Groovysh

  • 명령줄 셸.
  • 실행을 도와줍니다 Groovy 대화형으로 코드를 작성하세요.
  • 단일 문장 또는 전체 스크립트를 입력할 수 있습니다.

아래 스크린샷은 Groovysh가 표현식을 한 줄씩 평가하는 모습을 보여줍니다.

groovysh 명령줄 셸 실행 중 Groovy 문

Groovy 콘솔에서

  • 최소한의 기능을 수행하는 Swing 인터페이스 Groovy 개발 편집자.
  • 쓰기 및 실행이 가능합니다 Groovy 대화형으로 코드를 작성하세요.
  • 로드 및 실행을 도와줍니다 Groovy 스크립트 파일.

. Groovy 아래 콘솔 창에서 위쪽 창에 스크립트를 입력하면 아래쪽 창에 결과가 나타납니다.

Groovy 스크립트 및 출력 창을 갖춘 콘솔 스윙 편집기

Groovy

The groovy 명령어는 실행되는 프로세서입니다. Groovy 프로그램과 스크립트를 테스트하는 데 사용할 수 있습니다. 소스 코드를 메모리에서 바이트코드로 컴파일하고 한 번에 실행하므로 별도의 빌드 단계가 필요하지 않습니다. 간단한 프로그램을 테스트하는 데에도 사용할 수 있습니다. Groovy 아래와 같이 터미널에서 바로 입력된 표현식입니다.

터미널에서 스크립트를 실행하는 Groovy 명령어

어디에 Groovy 실제 프로젝트에서 사용됩니다

대부분의 개발자는 다음과 같은 일을 합니다. Groovy 독립형 언어가 아니라 이미 사용 중인 도구 내의 스크립팅 레이어로서 사용됩니다. 해당 구문이 어디에 나타나는지 알면 위의 구문을 배치하기가 훨씬 쉬워집니다.

수단 방법 Groovy 사용
Jenkins 선언적 파이프라인과 스크립트 기반 파이프라인은 다음과 같이 작성됩니다. Groovy DSL과 공유 라이브러리는 단순합니다. Groovy 수업.
Gradle 고전 build.gradle 파일은 Groovy 스크립트이기 때문에 일반 스크립트보다 더 간결하게 읽힙니다. 메이븐 POM 또는 개미 빌드 파일.
SoapUI Groovy 스크립트 단계와 스크립트 어설션은 동적 요청 데이터와 사용자 지정 응답 검사를 구동합니다.
Spock A Groovy JVM 단위 테스트에 널리 사용되는 given-when-then 블록과 데이터 테이블을 포함하는 테스트 프레임워크입니다.
엘라스틱서치와 그레일즈 Grails는 완전한 웹 애플리케이션을 구축합니다. Groovy그리고 여러 데이터 도구가 이를 허용합니다. Groovy 사용자 지정 스크립팅용입니다.

In 자동화 테스트 팀에게 있어 이는 두 가지 측면에서 중요합니다. 테스트 스위트를 실행하는 CI 작업과 테스트 자체 모두 중요할 수 있습니다. Groovy따라서 단일 언어로 파이프라인 연결 및 어설션 로직을 모두 처리할 수 있습니다.

Groovy VS. Java

Groovy Java
기본 접근 제어자는 public이므로, 제어자가 없는 메서드는 해당 클래스와 패키지 외부에서도 접근할 수 있습니다. 기본 접근 제한자는 패키지 전용이므로, 제한자가 없는 필드, 메서드 및 클래스는 해당 패키지 내에서만 볼 수 있습니다.
클래스 속성에 대한 getter와 setter는 자동으로 생성됩니다. 필드에 대한 getter 및 setter 메서드를 직접 정의해야 합니다.
Groovy 큰따옴표로 묶인 문자열 내에서 변수 치환을 허용합니다. Java 문자열 보간을 지원하지 않습니다.
유형 정보는 선택 사항입니다. 유형 정보는 필수 입력 사항입니다.
문장은 세미콜론으로 끝날 필요가 없습니다. 모든 문장은 세미콜론으로 끝납니다.
Groovy 모든 스크립트를 생성된 Script 클래스로 자동 래핑합니다. 클래스를 실행 가능하게 만들려면 main 메서드가 필요합니다.
모든 것은 기본적으로 공개되어 있고 역동적이지만, @CompileStatic 복원 Java-수준 속도 및 확인. 모든 것은 빌드 시점에 정적으로 컴파일되고 검사됩니다.

에 관한 신화 Groovy

신화 현실
Groovy 스크립팅 용도로만 사용할 수 있습니다. 스크립팅에 탁월할 뿐만 아니라, 어떤 JVM 애플리케이션에든 포함시켜 배포할 수 있는 일반 클래스로 컴파일되기도 합니다.
Groovy 클로저에 관한 모든 것이기 때문에, 함수형 프로그래밍 언어라고 할 수 있습니다. Groovy Lisp이나 Clojure 같은 함수형 언어에서 아이디어를 차용했지만, 본질적으로는 객체 지향 언어입니다.
Groovy 테스트 주도 개발에만 사용할 가치가 있습니다. Groovy Spock을 사용한 TDD에 매우 적합하지만, 그것이 Spock을 사용하는 유일한 이유는 아닙니다.
당신은 필요합니다 Groovy Grails를 사용하고 싶다면. Grails는 강력한 웹 개발 프레임워크이지만, Gradle, Jenkins그리고 스포크 모두 사용합니다 Groovy 그것없이.

사용의 단점 Groovy

  • JVM 및 Groovy 스크립트 시작 시간이 느려서 운영체제 수준의 빠른 스크립팅에는 사용이 제한적입니다.
  • Groovy JVM 중심 커뮤니티 외에서는 널리 사용되지 않습니다.
  • 사용하기 불편하다 Groovy 동적 기능을 이해하는 IDE 없이는 불가능합니다.
  • 동적 배차는 다음과 같은 결과를 가져올 수 있습니다. Groovy 동등한 코드보다 느린 코드 Java 코드를 적용하지 않는 한 @CompileStatic.
  • Groovy 프로그램은 일반 프로그램보다 더 많은 메모리가 필요할 수 있습니다. Java 프로그램.
  • 지식 Java 이는 사실상 필수 조건입니다.

일단 익숙해지면 Groovy 구문론을 공부할 때, 자연스러운 다음 단계는 그 주변의 생태계를 살펴보는 것입니다. 기본기를 탄탄히 다지려면 다음을 참고하세요. Java 지도 시간그럼 어떻게 되는지 봅시다 Groovy 스크립트는 빌드 및 배포를 주도합니다. Jenkins빌드 도구를 비교해 보세요 메이븐 아파치 개미그리고 어떻게 하는지 살펴보겠습니다. Groovy 주장은 다음과 같습니다. Selenium 및 API 테스트 스위트.

자주 묻는 질문

Groovy 5.0 버전은 JDK 11 이상을 대상으로 합니다. Groovy 4.0 버전은 여전히 ​​JDK 8을 지원하며, 개발 중인 기능은 다음과 같습니다. Groovy 6.0 버전은 JDK 17을 대상으로 합니다. 버전을 확정하기 전에 Apache 공식 다운로드 페이지의 시스템 요구 사항 표를 확인하십시오.

아니요. `groovy` 명령어는 `.groovy` 파일을 메모리에서 바이트코드로 컴파일하고 즉시 실행합니다. 하지만 재사용 가능한 `.class` 파일을 패키지에 포함시키려면 `groovyc` 명령어를 사용하여 미리 컴파일할 수 있습니다. Java 응용 프로그램.

네. 아파치 Groovy 이 소프트웨어는 Apache License 2.0에 따라 배포되므로 상업적 사용, 수정 및 재배포가 모두 무료로 허용됩니다. 재배포된 빌드에는 일반적인 저작자 표시 및 라이선스 고지 의무만 적용됩니다.

Groovy 는 프로그래밍 언어입니다. Grails는 로 작성된 풀스택 웹 프레임워크입니다. Groovy. 당신은 사용할 수 있습니다 Groovy Grails를 설치하지 않고도 빌드 파일, 파이프라인 또는 테스트를 사용할 수 있지만, Grails는 이 없이는 존재할 수 없습니다. Groovy.

이들은 클로저, 컬렉션 메서드, 파이프라인 단계와 같은 일반적인 관용구를 잘 처리합니다. 생성된 스크립트는 모델이 혼합되는 경우가 있으므로 항상 groovyConsole에서 먼저 실행해야 합니다. Java 구문 Groovy 지름길을 찾거나 존재하지 않는 방법을 만들어낸다.

스택을 붙여넣으세요 trace와 스크립트를 보조 도구에 입력하여 다음과 같은 가능한 원인을 파악합니다. GroovyCastException 오류, 샌드박스 승인 누락 또는 잘못된 클로저 델리게이트 등 여러 가지 원인이 있을 수 있습니다. 모든 제안을 가설로 간주하고 실제 빌드 로그와 대조하여 확인하십시오.

이 게시물을 요약하면 다음과 같습니다.