์๋ ํ์ธ์. ๋จผ์ Java ๊ฐ๋ฐ์ ๊ฒฌ๋ ์ ์๊ฒ ํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ์ ๋ lombok์ ๊ธฐ์ฌํ๊ณ ์ถ์ต๋๋ค(#1207 ์ฐธ์กฐ). ์ฒซ ๋ฒ์งธ ๋ชฉํ๋ ์ฒดํฌ์์ํ๊ณ ํ ์คํธ๋ฅผ ํต๊ณผํ๋ ๊ฒ์ ๋๋ค. ๊ทธ๋์ ๋๋ ์ฒดํฌ ์์ํ๊ณ ๋ค์์ ์ํํฉ๋๋ค.
ant -projecthelp
ant setupJavaOracle8TestEnvironment
- ๋ง์ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.src/core9
build.xml
<ivy:compile destdir="build/lombok" source="1.9" target="1.9">
๋ setupJavaOracle8TestEnvironment
๋ง ์คํํด๋ ์คํ๋ฉ๋๋ค.ant setupJavaOracle8TestEnvironment
์๋ant dist
๋ฅผ ์คํํ๋ฉด ๋ง์ ํ
์คํธ๊ฐ ์คํจํฉ๋๋ค.Lombok์์ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ค์ ํ๋ ๋ฐ ์ฃผ๋ง์ ๋ณด๋ธ ํ ์ฃ์กํฉ๋๋ค. ๋ด๊ฐ ๋ญ๊ฐ๋ฅผ ์์ฃผ ์๋ชปํ๊ณ ์๋ ์ค์ด๋ผ๋ฉด, ์ฌ๊ธฐ์ ๋ฌด์์ด ์๋ชป๋๊ณ ์๋์ง์ ๋ํด ์ฌ๋ฌ๋ถ์ ๋์์ ๋ฐ๊ณ ์ถ์ต๋๋ค. ๋๋ ๋ชจ๋ PR์์ ํ ์คํธ๋ฅผ ์คํํ๋ ์ฌ์ด ํ ์คํธ ํ๊ฒฝ(์ ๋ฐ์ดํธ ๋น๋ ์คํฌ๋ฆฝํธ ๋๋ ๋ฌธ์)๊ณผ CI(Travis CI?) ์ค์ ์ ๊ธฐ์ฌํ๊ณ ์ถ์ต๋๋ค. ์ด๋ป๊ฒ ์๊ฐํด? :)
์ข ๋ ๋ช ํํด์ผ ํ์ง๋ง lombok์ ๋น๋ํ๋ ค๋ฉด JDK9๊ฐ ํ์ํฉ๋๋ค.
์๋ฃจ์ : ant๊ฐ 8 ์ดํ์์ ๊ฐ์งํ๊ณ ์ฆ์ ์ค๋ฅ๋ฅผ ์ ๊ฑฐํ๋๋ก ํฉ๋๋ค.
๋๋ repo์ ์๋ก์ด ๋ณต์ ๋ณธ์ ๊ฐ์ ธ ์์ javac8์ ์ฌ์ฉํ๋๋ก Mac ํ๊ฒฝ์ ์ค์ ํ๊ณ ์ด๊ฒ์ ์คํํ์ต๋๋ค. ์ค๋ฅ๊ฐ ์์ต๋๋ค.
๋ญ๊ฐ ์๋ชปํ๊ณ ์๋ ๊ฒ ๊ฐ์๋ฐ์? ๋๋ ์๋ฌด ์๊ฐ์ด ์๋ค; ๋ฐ์ํ ์ค๋ฅ๋ฅผ ์๋ ค์ฃผ์ธ์. ์ด ์ ๋ณด ์์ด๋ ํ ์ ์๋ ์ผ์ด ๋ณ๋ก ์์ต๋๋ค.
๋ณ๋๋ก ๊ทธ๋ ๊ฒ ํ ํ์๊ฐ ์์์ต๋๋ค. ํ๋ ค๋ ์์
์ ๋ฐ๋ผ ant eclipse
๋๋ ant dist
์์ผ๋ฉด ๋ฉ๋๋ค.
์, ๋ง์คํฐ ๋ธ๋์น๋ ๋ผ์ด๋ธ ๊ฐ๋ฐ ๋ธ๋์น์ ๋๋ค. ์์ ์ ์ธ ๊ฒ์ ์ํ๋ฉด ํ๊ทธ๊ฐ ์ง์ ๋ ๋ฆด๋ฆฌ์ค๋ก ๋๋๋ฆฝ๋๋ค. ์คํจํ ํ ์คํธ์ ๋๋ถ๋ถ์ lombok์ด ๋ค์ ์ด๊ตญ์ ์ธ ์ํฉ์์ ์๋ชป๋ ์์ ์ ์ํํ๊ณ ์์์ ๋ํ๋ด๋ฉฐ ํ ์คํธ๋ ์ด๋ฅผ ๋ฐ์ํ์ง๋ง ์ผ๋ฐ์ ์ผ๋ก '๋จธ๋ฆฌ์นด๋ฝ์ ๋ถ์ด ๋ถ์๋ค!!!'๊ฐ ์๋๋๋ค. ํ๋ฃป๋ฐค ์ฌ์ด์ ํด๊ฒฐํด์ผ ํฉ๋๋ค. ๋๋ค์์ ๋กฌ๋ณต ์ฌ์ฉ์๋ ์คํํ์ง ์์ต๋๋ค. ๊ฑฑ์ ํ์ง ๋ง์ธ์.
๊ธ์, ๋๋ฅผ ์ํด ์๋ํฉ๋๋ค. ์๋ด์ ๋ฐ๋ฅด๋ฉด '์๋ํ์ง ์์'์ ํ๋ฅญํ ๋ฒ๊ทธ ๋ณด๊ณ ์๊ฐ ์๋๋๋ค. ์ผ๋ถ ์ธ๋ถ ์ ๋ณด๊ฐ ํ์ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์ ๊ฐ ๋์๋๋ฆด ์ ์์ต๋๋ค. ๋๋ ๋น์ ์ ์ฐ์ ์์๊ฐ ์ฝ๊ฐ ์๋ง์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๊ธฐ์ฌํ๊ธฐ๋ฅผ ์ํ๊ณ ์ฒซ ๋ฒ์งธ ์ด์ ์ ๋น๋์คํฌ๋ฆฝํธ์ ์ ํ์ ์๋ฌธ์ ์ ๊ธฐํ๋ ๊ฒ์ ๋๋ค. ๊ทธ๊ฒ์ ๋งค์ฐ ์ข์ ์ด์ ๋๋ฌธ์ ๋ณต์กํ ํผ๋์ ๋๋ค. Lombok์ ๋น์ ์ด ๋ง๋ค ์ ์๋ ๊ฐ์ฅ ๋ณต์กํ ํ๋ก์ ํธ์ ๊ดํ ๊ฒ์ ๋๋ค. ๊ธฐ์ฌ๋ฅผ ์์ํ๊ธฐ์ ์ข์ ๊ณณ์ด ์๋๋๋ค.
์ด๊ฒ์ ์ก๋์ฌ๋์ ๋๋ค: ๋น์ ์ ์์ฃผ ์์ ์ธ๋ถ์ฌํญ์ผ๋ก ๋ง์ ๋ณ๋์ ๊ธฐ๋ฅ ์์ฒญ๊ณผ ๋ฒ๊ทธ ๋ณด๊ณ ์๋ฅผ ๋์ดํ์ต๋๋ค. ๋ค์ ์๊ฐ:
๋ฒ๊ทธ ๋ณด๊ณ ์๋ฅผ ํ๋ฅญํ๊ณ ์ ๋ฌธ์ํ๋ ๋ณด๊ณ ์๋ก ์ ์ถํ์ญ์์ค. Java ๋ฒ์ , OS, ์ํํ ์ค์ , ๋ฐ์ํ ์ค๋ฅ์ ๊ฐ์ ๊ด๋ จ ๋ฐ์ดํฐ๋ฅผ ํฌํจํ๊ณ ํญ๋ชฉ๋น ํ๋์ ๋ฌธ์ ๋ง ์ ์ถํ์ญ์์ค.
๊ธฐ์ฌ์ ๋ํ ์์ด๋์ด๋ ํฌ๋ผ์์ ๋งํ์๋ฉด '์์'ํ๋ ๊ฒ์ด ์ผ๋ง๋ ์ฌ์ด์ง ๋๋ ์ด๋ ค์ด์ง์ ๋ํ ์ผ๋ฐ์ ์ธ ๋ถ๋ง ์ฌํญ์ ๋ํด ํ ๋ก ํ์ญ์์ค. Lombok dev๋ ์ฐ๋ฆฌ๊ฐ ์ํ๋ ๊ฒ๋ณด๋ค ๋ค์ด๊ฐ๊ธฐ๊ฐ ์ฝ์ง ์์ง๋ง ๊ทธ ์ค ์๋น ๋ถ๋ถ์ lombok์ด ํ๋ ค๋ ์์ ์ ๋ณต์ก์ฑ์ ๋ด์ฌ๋์ด ์์ต๋๋ค.
Windows๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ๋๋ ์ด๊ฒ์ผ๋ก ์๋ก์ด ๋กฌ๋ณต ๋น๋๋ฅผ ํ ์ ์๋์ง ํ ์คํธํ์ต๋๋ค.
git clone https://github.com/rzwitserloot/lombok.git
ํ์ํ ๊ฒฝ์ฐ ํ๋ก์ ์์ฑ์ ์ค์ ํฉ๋๋ค(์ ์ ๊ฒฝ์ฐ).
set ANT_OPTS=-Dhttp.proxyHost=myproxyhost -Dhttp.proxyPort=3128 -Dhttp.proxyUser=myproxyusername -Dhttp.proxyPassword=myproxypassword -Dhttps.proxyHost=myproxyhost -Dhttps.proxyPort=3128
๋น์ฐํ ํ๋ก์ ๋ค์ ์๋ ๊ฒฝ์ฐ ๊ตฌ์ฑ์ ๋ฐ๋ผ ํธ์คํธ, ํฌํธ ๋ฐ ์ฌ์ฉ์๋ฅผ ๊ตฌ์ฑํด์ผ ํฉ๋๋ค. ํ๋ก์ ๋ค์ ์์ง ์์ ๊ฒฝ์ฐ ์ด ๋จ๊ณ๋ฅผ ๊ฑด๋๋ธ ์ ์์ต๋๋ค.
java -version
:
์ด๊ฒ์ ๋ค์์ ์ถ๋ ฅํฉ๋๋ค:
java version "10" 2018-03-20
Java(TM) SE Runtime Environment 18.3 (build 10+46)
Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10+46, mixed mode)
javac -version
:
javac 10
๋ง ์ถ๋ ฅ๋ฉ๋๋ค.
ant
- ์, ant
์์ผ๋ฉด ๋ฉ๋๋ค. ์ด๊ฒ์ ๋ง์ ์ข
์์ฑ์ ๋ค์ด๋ก๋ํ๋ ๋ฐ ์ฝ๊ฐ์ ์๊ฐ์ด ๊ฑธ๋ฆฌ๊ณ ํญ๋ชฉ์ ์ปดํ์ผํ๋ ๋ฐ ์ฝ๊ฐ์ ์๊ฐ์ด ๊ฑธ๋ฆฝ๋๋ค. ํ์ง๋ง 7๋ถ 7์ด ํ ๋ด dist
ํด๋์ lombok.jar
๋ฐ lombok-1.16.21.jar
๊ฐ ์์ต๋๋ค.
๋ฌผ๋ก @rzwitserloot์ด ๋งํ๋ฏ์ด ํ๊ทธ๊ฐ ์ง์ ๋ ๋ถ๊ธฐ ๋์ master
์์ ํญ๋ชฉ์ ๊ฐ์ ธ์ค๋ ๊ฒ์ ์ ํ
์คํธ๋์ง ์์ ํญ๋ชฉ์ ๊ฐ์ ธ์ฌ ์๋ ์์ต๋๋ค. ํ์ง๋ง dist
ํด๋์ JAR์ด ์์ผ๋ฉด ๋ฐฉ๊ธ ์ปดํ์ผํ๋ค๋ ์๋ฏธ์
๋๋ค. ๋ฐ๋ผ์ ๊ธฐ๋ฅ ๋ฐ ๋ฒ๊ทธ ์์ ์ ํด๊ฒฐํ๊ธฐ ์ํด ์ฝ๋๋ฅผ ํดํนํ ์ ์์ต๋๋ค.
@rzwitserloot ์ฌ์ค "ํญ์ธ"ํ๋ ค๋ ์๋๊ฐ ์๋ ant -projecthelp
์ธ์ํ ๋ฌธ์์ ๋ฐ๋ผ CLI์์ ํ
์คํธ๋ฅผ ํ์ธํ๊ณ ์คํํ์ต๋๋ค . ๋น๋์คํฌ๋ฆฝํธ (?) ์ค๋ฝ๋ค๋ ๊ฒ์ ๋งํด์ผ ํฉ๋๋ค.
@victorws ๊ฐ์ฌํฉ๋๋ค. ํ๊ทธ๊ฐ ์๋ ๋ฆด๋ฆฌ์ค๋ฅผ ์ฌ์ฉํด ๋ณด๊ฒ ์ต๋๋ค. ๋ง์คํฐ์์ ํ ์คํธ๊ฐ ์คํจํด๋ ๊ด์ฐฎ์์ง ๋ชฐ๋๊ณ ํ ์คํธ๋ฅผ ํต๊ณผํ๊ธฐ ์ํด ๋ง์ ์๊ฐ์ ๋ณด๋์ต๋๋ค. lombok๊ณผ ๊ฐ์ ๋ณต์กํ ํ๋ก์ ํธ์ ๊ฒฝ์ฐ ํ ์คํธ ์คํจ ์๋๋ฆฌ์ค์์ ์์ํ๊ณ ์ถ์ง ์์ต๋๋ค. ์ฝ๋ ๋ณ๊ฒฝ์ ์์ํ ๋ ์คํจํ ํ ์คํธ๊ฐ ์ด์ ๋๋ ์ดํ์ ์ค๋จ๋์๋์ง ์ฌ๋ถ๋ฅผ ์ ์ ์๊ณ "๋ค์์ ์ปดํ์ผ๋ฉ๋๋ค. ๋ด ๊ธฐ๊ณ" ๋ฌธ์ . ๋ฐ๋ผ์ ๋๋ ์ฌ์ ํ ํ๊ทธ๊ฐ ์๋ ๋ฆด๋ฆฌ์ค๋ฅผ ํต๊ณผํ๋ ํ ์คํธ๋ฅผ ๊ฐ์ ธ์ค๊ณ ๊ฑฐ๊ธฐ์์ ๋ฐ๋ณต์ ์์ํ๋ ค๊ณ ํฉ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
@rzwitserloot ์ฌ์ค "ํญ์ธ"ํ๋ ค๋ ์๋๊ฐ ์๋
ant -projecthelp
์ธ์ํ ๋ฌธ์์ ๋ฐ๋ผ CLI์์ ํ ์คํธ๋ฅผ ํ์ธํ๊ณ ์คํํ์ต๋๋ค . ๋น๋์คํฌ๋ฆฝํธ (?) ์ค๋ฝ๋ค๋ ๊ฒ์ ๋งํด์ผ ํฉ๋๋ค.@victorws ๊ฐ์ฌํฉ๋๋ค. ํ๊ทธ๊ฐ ์๋ ๋ฆด๋ฆฌ์ค๋ฅผ ์ฌ์ฉํด ๋ณด๊ฒ ์ต๋๋ค. ๋ง์คํฐ์์ ํ ์คํธ๊ฐ ์คํจํด๋ ๊ด์ฐฎ์์ง ๋ชฐ๋๊ณ ํ ์คํธ๋ฅผ ํต๊ณผํ๊ธฐ ์ํด ๋ง์ ์๊ฐ์ ๋ณด๋์ต๋๋ค. lombok๊ณผ ๊ฐ์ ๋ณต์กํ ํ๋ก์ ํธ์ ๊ฒฝ์ฐ ํ ์คํธ ์คํจ ์๋๋ฆฌ์ค์์ ์์ํ๊ณ ์ถ์ง ์์ต๋๋ค. ์ฝ๋ ๋ณ๊ฒฝ์ ์์ํ ๋ ์คํจํ ํ ์คํธ๊ฐ ์ด์ ๋๋ ์ดํ์ ์ค๋จ๋์๋์ง ์ฌ๋ถ๋ฅผ ์ ์ ์๊ณ "๋ค์์ ์ปดํ์ผ๋ฉ๋๋ค. ๋ด ๊ธฐ๊ณ" ๋ฌธ์ . ๋ฐ๋ผ์ ๋๋ ์ฌ์ ํ ํ๊ทธ๊ฐ ์๋ ๋ฆด๋ฆฌ์ค๋ฅผ ํต๊ณผํ๋ ํ ์คํธ๋ฅผ ๊ฐ์ ธ์ค๊ณ ๊ฑฐ๊ธฐ์์ ๋ฐ๋ณต์ ์์ํ๋ ค๊ณ ํฉ๋๋ค.