Hello Ability! - noonmaru/psychics GitHub Wiki

(https://github.com/noonmaru/psychics-abilities) ํ”„๋กœ์ ํŠธ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ง์ ‘ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ตฌ์„ฑํ•œ๋‹ค๋ฉด ๋น„์Šทํ•œ ์˜์กด์„ฑ์„ ๊ฐ€์ง„ ์—ฌ๋Ÿฌ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•œ๋ฒˆ์— ๋นŒ๋“œํ•˜๊ณ  ๊ฐ„ํŽธํ•œ ์˜์กด์„ฑ ๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด Gradle Multiproject๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๊ฒƒ์„ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค.


  1. abilities๋กœ ์ด๋™ํ•˜๊ธฐ

Project ํƒญ์—์„œ abilities ๋ชจ๋“ˆ์„ ์—ฌ์„ธ์š”.


  1. sample ๋ชจ๋“ˆ ๋ณต์ œํ•˜๊ธฐ

sample ๋ชจ๋“ˆ์„ ์›ํ•˜๋Š” ์ด๋ฆ„์œผ๋กœ ๋ณต์ œํ•˜์„ธ์š”. F5๋ฅผ ๋ˆ„๋ฅด๋ฉด ๊ฐ„๋‹จํ•˜๊ฒŒ ๋ณต์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

sample์€ ์ œ๊ฐ€ ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด๋‘” ์˜ˆ์ œ ๋Šฅ๋ ฅ์ž…๋‹ˆ๋‹ค.

์ €๋Š” myability๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ๋ณต์ œํ–ˆ์Šต๋‹ˆ๋‹ค.


  1. ๋ชจ๋“ˆ ์ธ์‹์‹œํ‚ค๊ธฐ

๋ณต์ œ ํ›„ Ctrl + Shift + O๋ฅผ ๋ˆ„๋ฅด๊ฑฐ๋‚˜ ์˜ค๋ฅธ์ชฝ์— ์žˆ๋Š” Gradle ํƒญ์„ ๋ˆŒ๋Ÿฌ ์ƒˆ๋กœ๊ณ ์นจ(Reload All Gradle Projects)์„ ๋ˆŒ๋Ÿฌ์ฃผ์„ธ์š”.

์ž ์‹œ Buildํƒญ์ด ํ™œ์„ฑํ™”๋˜๋ฉฐ ํ”„๋กœ์ ํŠธ ๊ด€๋ จ ํƒœ์Šคํฌ๋“ค์ด ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

์ •์ƒ์ ์œผ๋กœ ํƒœ์Šคํฌ๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด myability ํด๋”๊ฐ€ ๋ชจ๋“ˆ๋กœ ์ธ์‹๋ฉ๋‹ˆ๋‹ค. (ํŒŒ๋ž€์ƒ‰ ๋„ค๋ชจ)


  1. ๊ธฐ์กด ์ฝ”๋“œ ์‚ญ์ œํ•˜๊ธฐ

myability/src/main/kotlin ํ•˜์œ„์— ์žˆ๋Š” ํŒจํ‚ค์ง€์™€ ํŒŒ์ผ์„ ๋ชจ๋‘ ์‚ญ์ œํ•ฉ์‹œ๋‹ค.


  1. ํŒจํ‚ค์ง€์™€ ํŒŒ์ผ ๋งŒ๋“ค๊ธฐ

์›ํ•˜๋Š” ์ด๋ฆ„์˜ ํŒจํ‚ค์ง€์™€ ์ฝ”ํ‹€๋ฆฐ ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด๋ด…์‹œ๋‹ค.

์ €๋Š” ์œ„์™€๊ฐ™์ด ํŒจํ‚ค์ง€๋Š” foo.tutorial.psychics.ability, ํŒŒ์ผ ์ด๋ฆ„์€ MyAbility๋กœ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.


  1. Ability ํด๋ž˜์Šค ๋งŒ๋“ค๊ธฐ

MyAbility ํŒŒ์ผ์„ ์—ด์–ด์„œ ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค๊ณ  com.github.noonmaru.psychics.Ability๋ฅผ ์ƒ์†ํ•˜์„ธ์š”

Aility ์˜†์—์žˆ๋Š” <AbilityConcept>๋Š” AbilityConcept ํŽ˜์ด์ง€์—์„œ ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.


  1. Main ์ง€์ •ํ•˜๊ธฐ

myability/gradle.properties ํŒŒ์ผ์„ ์—ด์–ด ๋ฐฉ๊ธˆ ๋งŒ๋“  Ability๋ฅผ ์ƒ์†ํ•œ ํด๋ž˜์Šค์˜ ๊ฒฝ๋กœ๋ฅผ main์— ํŒจํ‚ค์ง€.ํด๋ž˜์Šค๋กœ ์ ์–ด์ฃผ์„ธ์š”.


  1. group ๊ณผ author ๋ณ€๊ฒฝํ•˜๊ธฐ

๋นŒ๋“œํ•˜๊ธฐ ์ „ ๊ฒฐ๊ณผ๋ฌผ์— ์ €์ž‘์ž์™€ group์˜ ์ •๋ณด๋ฅผ ๋ณ€๊ฒฝํ•˜์„ธ์š”.

๊ธฐ๋ณธ๊ฐ’์€ ์ €์ž‘์ž = noonmaru, group = com.github.noonmaru ์ž…๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ ์ตœ์ƒ์œ„ ๊ฒฝ๋กœ์˜ gradle.properties๋ฅผ ์—ด์–ด group๊ณผ author์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.


  1. ๋นŒ๋“œํ•˜๊ธฐ

์„œ๋ฒ„์— ์ ์šฉํ•˜๊ธฐ์œ„ํ•œ jarํŒŒ์ผ์„ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

1. Gradle ํƒญ์—์„œ Tasks/build/build ํƒœ์Šคํฌ๋ฅผ ํด๋ฆญํ•˜์—ฌ ๋นŒ๋“œ์‹คํ–‰
2. ๋˜๋Š” ํ„ฐ๋ฏธ๋„์—์„œ `./gradlew build` ๋ฅผ ์‹คํ–‰

์ž ์‹œ build ํƒœ์Šคํฌ๊ฐ€ ์™„๋ฃŒ๋˜๊ธธ ๊ธฐ๋‹ค๋ฆฐ ํ›„์— abilities/build ํด๋”๋ฅผ ํ™•์ธํ•˜์„ธ์š”.

๋ฐฉ๊ธˆ ๋งŒ๋“  ๋Šฅ๋ ฅ์ด (group).(project.name).jar ์ด๋ฆ„์œผ๋กœ ์ƒ์„ฑ๋˜๋ฉด ์„ฑ๊ณต!


  1. ์„œ๋ฒ„์— ์ ์šฉํ•˜๊ธฐ

๋นŒ๋“œ ๊ฒฐ๊ณผ๋ฌผ์„ ์„œ๋ฒ„์— ๋ณต์‚ฌํ•˜์„ธ์š”. ์ฐธ์กฐ: ๊ตฌ์„ฑํ•˜๊ธฐ

์‹คํ–‰ ํ›„ ์ฝ˜์†”์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฉ”์‹œ์ง€๊ฐ€ ๋‚˜์˜ค๋ฉด ์ •์ƒ์ ์œผ๋กœ ๋กœ๋”ฉ๋œ๊ฒƒ์ž…๋‹ˆ๋‹ค.

โš ๏ธ **GitHub.com Fallback** โš ๏ธ