Home > Development tools and environments > πŸ› οΈ[개발 도ꡬ 및 ν™˜κ²½] `./gradlew build -x test` λͺ…λ Ήμ–΄λŠ” λ¬΄μ—‡μΈκ°€μš”?

πŸ› οΈ[개발 도ꡬ 및 ν™˜κ²½] `./gradlew build -x test` λͺ…λ Ήμ–΄λŠ” λ¬΄μ—‡μΈκ°€μš”?
Development tools Enviroments

πŸ› οΈ[개발 도ꡬ 및 ν™˜κ²½] ./gradlew build -x test λͺ…λ Ήμ–΄λŠ” λ¬΄μ—‡μΈκ°€μš”?

  • ./gradlew build -x test λͺ…λ Ήμ–΄λŠ” Gradle λΉŒλ“œ μ‹œμŠ€ν…œμ—μ„œ ν”„λ‘œμ νŠΈλ₯Ό λΉŒλ“œ(Build)ν•˜λ©΄μ„œ ν…ŒμŠ€νŠΈ(Test) 단계λ₯Ό κ±΄λ„ˆλ›°κΈ° μœ„ν•œ λͺ…λ Ήμ–΄μž…λ‹ˆλ‹€.

1️⃣ λͺ…λ Ήμ–΄ ꡬ성.

1️⃣ ./gradlew

  • Gradle Wrapperλ₯Ό μ‹€ν–‰ν•˜λŠ” λͺ…λ Ήμ–΄μž…λ‹ˆλ‹€.
  • ν”„λ‘œμ νŠΈ 내에 ν¬ν•¨λœ Gradle Wrapper(gradlew)λ₯Ό μ‚¬μš©ν•˜μ—¬ Gradle λͺ…λ Ήμ–΄λ₯Ό μ‹€ν–‰ν•©λ‹ˆλ‹€.
  • Gradle Wrapperλ₯Ό μ‚¬μš©ν•˜λ©΄ ν”„λ‘œμ νŠΈμ— μ„€μ •λœ νŠΉμ • Gradle 버전을 μžλ™μœΌλ‘œ λ‹€μš΄λ‘œλ“œν•˜κ³  μ‹€ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

2️⃣ build

  • Gradle의 κΈ°λ³Έ λΉŒλ“œ(Build) μž‘μ—…(Task)μž…λ‹ˆλ‹€.
  • ν”„λ‘œμ νŠΈλ₯Ό λΉŒλ“œν•˜μ—¬ 컴파일, ν…ŒμŠ€νŠΈ, νŒ¨ν‚€μ§•(JAR/ZIP 생성 λ“±)을 μˆ˜ν–‰ν•©λ‹ˆλ‹€.
  • buildλŠ” μ—¬λŸ¬ 단계λ₯Ό ν¬ν•¨ν•˜λ©°, 일반적으둜 λ‹€μŒμ„ μ‹€ν–‰ν•©λ‹ˆλ‹€.
    • compileJava : μžλ°” μ†ŒμŠ€ μ½”λ“œ 컴파일.
    • processResources : λ¦¬μ†ŒμŠ€ 파일 처리.
    • test : ν…ŒμŠ€νŠΈ μ‹€ν–‰.
    • assemble : μ•„ν‹°νŒ©νŠΈ 생성(JAR λ“±).
    • check : ν’ˆμ§ˆ 검사 및 ν…ŒμŠ€νŠΈ 톡합.
    • build : μœ„ 단계듀을 ν†΅ν•©ν•˜μ—¬ μ‹€ν–‰.

3️⃣ -x test

  • -xλŠ” νŠΉμ • μž‘μ—…(Task)을 μ œμ™Έ(Exclude)ν•œλ‹€λŠ” μ˜΅μ…˜μž…λ‹ˆλ‹€.
  • μ—¬κΈ°μ„œλŠ” test μž‘μ—…μ„ μ‹€ν–‰ν•˜μ§€ μ•Šκ³  κ±΄λ„ˆλ›΄λ‹€λŠ” μ˜λ―Έμž…λ‹ˆλ‹€.
  • testλŠ” JUnitλ“±μœΌλ‘œ μž‘μ„±λœ λ‹¨μœ„ ν…ŒμŠ€νŠΈλ₯Ό μ‹€ν–‰ν•˜κ³  κ²°κ³Όλ₯Ό ν™•μΈν•˜λŠ” μž‘μ—…μž…λ‹ˆλ‹€.

2️⃣ λͺ…λ Ήμ–΄μ˜ λ™μž‘.

  • ./gradlew build -x testλŠ” ν…ŒμŠ€νŠΈ 단계λ₯Ό μ œμ™Έν•˜κ³  ν”„λ‘œμ νŠΈλ₯Ό λΉŒλ“œν•©λ‹ˆλ‹€.
  • λΉŒλ“œ κ³Όμ •μ—μ„œ:
    • μ†ŒμŠ€ μ½”λ“œλŠ” 컴파일 되고,
    • λ¦¬μ†ŒμŠ€ νŒŒμΌμ€ 처리되며,
    • κ²°κ³Όλ¬Ό(JAR, ZIP λ“±)이 μƒμ„±λ©λ‹ˆλ‹€.
    • 단, ν…ŒμŠ€νŠΈλŠ” μ‹€ν–‰λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

3️⃣ μ–Έμ œ μ‚¬μš©ν•˜λ‚˜μš”?

1️⃣ ν…ŒμŠ€νŠΈ μ‹€ν–‰ μ‹œκ°„μ΄ 였래 걸릴 λ•Œ.

  • ν…ŒμŠ€νŠΈ λ‹¨κ³„λŠ” μ‹œκ°„μ΄ 였래 걸릴 수 μžˆμŠ΅λ‹ˆλ‹€.
  • λΉ λ₯΄κ²Œ λΉŒλ“œλ₯Ό μ™„λ£Œν•˜κ³  κ²°κ³Όλ¬Ό(JAR 파일 λ“±)만 μƒμ„±ν•˜λ €λŠ” 경우 μœ μš©ν•©λ‹ˆλ‹€.

2️⃣ ν…ŒμŠ€νŠΈκ°€ μ‹€νŒ¨ν•˜κ±°λ‚˜ λΆˆμ™„μ „ν•œ μƒνƒœμΌ λ•Œ.

  • ν…ŒμŠ€νŠΈ μ½”λ“œκ°€ μ™„λ²½ν•˜μ§€ μ•Šκ±°λ‚˜ μ‹€νŒ¨ν•˜μ§€λ§Œ, 결과물만 생성이 ν•„μš”ν•œ 경우 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

3️⃣ CI/CD νŒŒμ΄ν”„λΌμΈμ—μ„œ μ„ νƒμ μœΌλ‘œ ν…ŒμŠ€νŠΈλ₯Ό κ±΄λ„ˆλ›Έ λ•Œ

  • ν…ŒμŠ€νŠΈ 단계가 λ³„λ„μ˜ ν”„λ‘œμ„ΈμŠ€μ—μ„œ μ‹€ν–‰λ˜λŠ” 경우, λΉŒλ“œ μ‹œ ν…ŒμŠ€νŠΈλ₯Ό μƒλž΅ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

4️⃣ μ˜ˆμ‹œ.

1️⃣ ν…ŒμŠ€νŠΈ 포함 λΉŒλ“œ.

./gradlew build
  • ν…ŒμŠ€νŠΈ 단계도 ν¬ν•¨λ©λ‹ˆλ‹€.

2️⃣ ν…ŒμŠ€νŠΈ μ œμ™Έ λΉŒλ“œ.

./gradlew build -x test
  • ν…ŒμŠ€νŠΈ 단계λ₯Ό μ œμ™Έν•˜κ³  λΉŒλ“œκ°€ μ§„ν–‰λ©λ‹ˆλ‹€.

5️⃣ μ£Όμ˜μ‚¬ν•­.

  • ν…ŒμŠ€νŠΈλ₯Ό μƒλž΅ν•˜λ©΄ μ½”λ“œμ˜ ν’ˆμ§ˆμ΄λ‚˜ μ•ˆμ •μ„±μ„ 보μž₯ν•  수 μ—†μŠ΅λ‹ˆλ‹€.
  • μ΅œμ’… λ°°ν¬λ‚˜ ν”„λ‘œλ•μ…˜ ν™˜κ²½μ—μ„œλŠ” ν…ŒμŠ€νŠΈ 단계λ₯Ό ν¬ν•¨ν•œ λΉŒλ“œλ₯Ό μ‚¬μš©ν•˜λŠ” 것이 ꢌμž₯λ©λ‹ˆλ‹€.

6️⃣ μš”μ•½.

  • ./gradlew build -x test λͺ…λ Ήμ–΄λŠ” Gradle을 μ‚¬μš©ν•΄ ν”„λ‘œμ νŠΈλ₯Ό λΉŒλ“œν•˜λ©΄μ„œ ν…ŒμŠ€νŠΈ 단계λ₯Ό μƒλž΅ν•˜λŠ” λͺ…λ Ήμ–΄μž…λ‹ˆλ‹€.
  • λΉ λ₯Έ λΉŒλ“œκ°€ ν•„μš”ν•˜κ±°λ‚˜ ν…ŒμŠ€νŠΈ μƒνƒœμ™€ 관계없이 결과물만 μƒμ„±ν•˜λ €λŠ” μƒν™©μ—μ„œ μœ μš©ν•©λ‹ˆλ‹€.