โ ์ค๋ฅ
pom.xml ํ์ผ์ Maven plugin ์ค
`maven-dependency-plugin` ๊ณผ `maven-jar-plugin` ์ ์ค์ ํด์ฃผ์๋๋ฐ,
ํ๋ฌ๊ทธ์ธ์ด ์คํ๋์ง ์๋ ์ด์๊ฐ ์์๋ค.
๋ถ๋ช ํ <project><build>ํ์์ <plugins> ํ๊ทธ์
๊ฐ๊ฐ์ ํ๋ฌ๊ทธ์ธ ์ค์ ์ ํด์ฃผ์๊ธฐ ๋๋ฌธ์
jar ํ์ผ๋ก ํจํค์ง์ด ์๋ฃ๋ ์์ ์์๋ `target/` ํ์์ `libs`๋ผ๋ ํจํค์ง๊ฐ ์๊ธฐ๊ณ ,
๊ทธ ๋๋ ํ ๋ฆฌ์๋ ์ถ๊ฐํ ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ด jar ํํ๋ก ๋ค์ด๊ฐ ์์ด์ผ ํ๋ค.
ํ์ง๋ง target/libs ๋๋ ํ ๋ฆฌ ์์ฒด๊ฐ ์์ฑ๋์ง ์๋ ๋ฌธ์ ๊ฐ ์์๋ค.
์ค์ ๋๋ก ์ ๋๋ก ๋์ํ๋ค๋ฉด, mvn clean package ๋ช ๋ น์ด๋ฅผ ์คํํ์ ๋ ๋ก๊ทธ์๋ ๋ถ๋ช ํ
์ด๋ฐ ์์ผ๋ก target/libs ํ์์ jarํ์ผ์ copyํ๋ ์ค์ด๋ผ๋ ๋ก๊ทธ๊ฐ ์ฐํ์ผ ํ๋๋ฐ
์ค์ ํด์ค copy-dependencies ์ ๊ด๋ จ๋ ๋ก๊ทธ๊ฐ ์ ํ ์ฐํ์ง ์์๋ค.
๊ทธ๋์ ์์ฑ๋ jar ํ์ผ์ ์คํํ๋ฉด NoClassDefFoundError๊ฐ ๋ฐ์ํ๋ค.
๋๋ฌด๋๋ ๋น์ฐํ๊ฒ ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฝ์ ์ ์์๊ธฐ ๋๋ฌธ์ ๋ฐ์ํ ์๋ฌ์ด๋ค.
โ ์์ธ๊ณผ ํด๊ฒฐ
๋ฌธ์ ์ ์์ธ์ pom.xml์์ ํ๋ฌ๊ทธ์ธ ์ค์ ์ ์๋ชป ํด์ฃผ์๊ธฐ ๋๋ฌธ์ด๋ค.
๋ด๊ฐ ์์ฑํ pom.xml ํ์ผ์ ์์ธํ ๋ค์ฌ๋ค๋ณด๋
plugin ์ค์ ์ด <project><build><plugins> ํ์์ ์์ง ์๋ ๊ฒ์ด ์๋๋ผ,
<project><build><pluginManagement><plugins> ํ์์ ์์๋ค.
๊ทธ๋ ๋ค๋ฉด <pluginManagement> ํ๊ทธ๋ ๋๋์ฒด ๋ญ๊น?
<pluginManagement> ํ๊ทธ๋ ๋ถ๋ชจ ํ๋ก์ ํธ์์ ์์ ํ๋ก์ ํธ๋ก ํ๋ฌ๊ทธ์ธ ๋ฒ์ ๊ด๋ฆฌ ๋ฐ ๊ธฐ๋ณธ ์ค์ ์ ์ ๋ฌํ๋ ์ฉ๋๋ก ์ฌ์ฉ๋๋ฉฐ,
<pluginManagement> ํ๊ทธ ์์ ์๋ ํ๋ฌ๊ทธ์ธ์ ์์ ํ๋ก์ ํธ์์ ๋ฐ๋ก ์ ์๋์ง ์์ผ๋ฉด ์คํ๋์ง ์๋๋ค๊ณ ํ๋ค.
์ฆ <pluginMangement> ํ๊ทธ ์์ ์ค์ ํ ํ๋ฌ๊ทธ์ธ๋ค์ ์คํ์ด ๋์ง ์์ ์ ์๋ค๋ ๊ฒ์ด๋ค!
๊ทธ๋์ ๋ชจ๋ plugin ์ค์ ์ <project><build><plugins>๋ก ์ฎ๊ฒจ์ฃผ์๋ค. .
mvn package ๋ช ๋ น์ด๋ก jar ํ์ผ์ ๋ค์ ์์ฑํ์, ๋ด๊ฐ ์ค์ ํ๋๋ก target/libs ๋๋ ํ ๋ฆฌ๊ฐ ์์ฑ๋์ด ํ์์ ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ jar ํ์ผ๋ค์ด ๋ณต์ฌ๋์ด ๋ค์ด๊ฐ๋ค.
๋ฌผ๋ก ํ๋ก๊ทธ๋จ๋ ์ ์์ ์ผ๋ก ์คํ๋์๋ค.
โ ์ถ๊ฐ ๊ณ ์ฐฐ
ํด๋น ํ๋ก์ ํธ๋ฅผ ์์ฑํ ๋ maven-archetype-quickstart๋ก ์์ฑํ์๋ค.
ํ๋ก์ ํธ ๋น๋ํ ๋๋ถํฐ pom.xml์
<build><pluginManagement> ํ๊ทธ์ ํ์ ํ๋ฌ๊ทธ์ธ ์ค์ ๋ค์ด ์๊ฒผ๊ณ
<pluginManagement> ํ๊ทธ์๋ ์๋์ ๊ฐ์ ์ฃผ์์ด ์ ํ์์๋ค.
Lock down plugins versions to avoid using Maven defaults (may be moved to parent pom)
๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ ์๋ ์ฃผ์ ๋ด์ฉ์ด ์ดํด๋ ์ ๋๊ณ ์ค์ํ๋ค๊ณ ์๊ฐ๋์ง ์์์ ๊ทธ๋ฅ ๋์ด๊ฐ์๋ค.
๋ค์ ๋ณด๋, ์๋์ผ๋ก maven ํ๋ก์ ํธ๊ฐ ์์ฑ๋ ๋ parent ํ๋ก์ ํธ์ ๋ํดํธ ํ๋ฌ๊ทธ์ธ ์ค์ ๋ค์ด ํจ๊ป ์์ฑ๋ ๊ฒ์ด๊ณ ,
"์ด๋ฌํ ์ค์ ๋ค ๋๋ฌธ์ ํ์ฌ ํ๋ก์ ํธ๊ฐ ์๋๋๋ก ๋์ํ์ง ์์ ์ ์์ผ๋ ์ด๋ฌํ ์ค์ ์ parent ํ๋ก์ ํธ์ pom.xml๋ก ์ด๋ํ๋ ๊ฒ์ด ์ข๋ค" ์ ๋๋ก ํด์ํ๋ฉด ๊ด์ฐฎ์ ๊ฒ ๊ฐ๋ค๊ณ ์๊ฐํ๋ค.
'์ค๋ฅ ํด๊ฒฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Ubuntu ๊ฐ์๊ธฐ cli๋ก ๋์ค๋ ๋ฌธ์ (0) | 2024.09.30 |
---|---|
Ubuntu์์ settings ์ ํ๋ฆฌ์ผ์ด์ ์ฌ๋ผ์ง (0) | 2024.09.30 |
[Docker] Docker ์ค์น์ ์คํ ์ค ์๋ฌ (0) | 2024.08.29 |
[Docker] tcp:lookup registry-1.docker.io on server misbehaving (0) | 2024.08.29 |
Tomcat ์ ํ๋ฆฌ์ผ์ด์ ์์ csv ํ์ผ ์ฝ๊ธฐ (0) | 2024.07.28 |