maven ์˜ finalName ์„ ๋ช…๋ นํ–‰์—์„œ ๋ณ€๊ฒฝ ํ•˜๊ธฐ

๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ git ์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  ๋ฑ€๋ถ€์˜ ๋ธŒ๋žœ์น˜ ์ž๋™ ๋นŒ๋“œ ๊ธฐ๋Šฅ์„ ์ด์šฉํ•˜์—ฌ java web app ์˜ ๋นŒ๋“œ์™€ ๋””ํ”Œ๋กœ์ด๋ฅผ ์ž๋™์œผ๋กœ ํ•˜๋ ค๊ณ  ํ•œ๋‹ค.

๋ธŒ๋žœ์น˜๋งˆ๋‹ค ๋ณ„๋„์˜ web app context ๋ฅผ ๋งŒ๋“ค๊ณ  ์‹ถ์€๋ฐ ์ด๋ ‡๊ฒŒ ํ•˜๋ ค๋ฉด ๋งค๋ฒˆ maven ์˜ pom ํŒŒ์ผ์— finalName ์„ ๋ณ€๊ฒฝํ•ด์•ผ ํ•œ๋‹ค.

ย 

command line ์—์„œ finalName ์ด๋‚˜ ๊ธฐํƒ€ maven ์˜ property ๋ฅผ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ• ์ˆ˜ ์žˆ๋‹ค.

ย 

  1. pom.xml ์˜ finalName ์„ ํ”„๋กœํผํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ๋ณ€๊ฒฝ. maven์˜ ๊ธฐ๋ณธ finalName์€ ย ${project.artifactId}-${project.version} ์ด๋‹ค.

    <groupId>com.example</groupId>
    <artifactId>test-web-app</artifactId>
    <packaging>war</packaging>
    <version>1.0-SNAPSHOT</version>
    
    
    <properties>
        <finalName>${project.artifactId}</finalName>
    </properties>
    ย 
    <build>
        <finalName>${finalName}</finalName>
    </build>
  2. maven ์„ ์ˆ˜ํ–‰ํ•  ๋•Œ -DfinalName=new-artifact ๋กœ ์ง€์ •ํ•˜์—ฌ ์‹คํ–‰ํ•˜๋ฉด target ํด๋”์— new-artifact.war ๋กœ ์ƒ์„ฑ์ด ๋œ๋‹ค.

    mvn package -DfinalName=new-artifact
    ย 
    ## target/new-artifact.war ์ƒ์„ฑ
  3. ์˜ต์…˜์—†์ด maven ์„ ์‹คํ–‰ํ•˜๋ฉด ๊ธฐ๋ณธ finalName์ธย test-web-app.war ๋กœ ์ƒ์„ฑ๋œ๋‹ค.

    mvn package -DfinalName=test-web-app
  4. bamboo ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉดย Bamboo variables ์‚ฌ์šฉ ํ•˜์—ฌ ๋ธŒ๋žœ์น˜๋ช…์œผ๋กœ finalName ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. git์˜ ๋ธŒ๋žœ์น˜๋ช…์€ย bamboo.repository.git.branch ๋ณ€์ˆ˜์— ์„ค์ •๋œ๋‹ค.

    mvn package -DfinalName=${bamboo.repository.git.branch}
  5. ย bamboo ์—์„œ ๋ฐ”๋กœ tomcat ์— deploy ํ•˜๋ ค๋ฉด WAR FIle ํ•ญ๋ชฉ์— ์•„๋ž˜์ฒ˜๋Ÿผ ๋ณ€์ˆ˜๋ช…์„ ์„ค์ •ํ•˜๋ฉด ๋ณ€๊ฒฝ๋œ war ๋ฅผ ์ฐธ์กฐํ•œ๋‹ค.
    ย 

ย