운영, 테스트서버, 개발서버 와 같이 서버가 3개가 구성되어있고,
각각의 서버별로 사용하는 jar가 달라야 할 때, 서버 환경에 맞게 jar를 빌드하여 서버에 배포해보자.
* 서버 환경별로 jar 내부적으로 소켓통신을 하는 목적지 ip가 달라 jar가 총 3개 존재했고..
war 를 어떤 서버에 배포하느냐에 따라 jar를 바꿔서 빌드 후, 서버에 배포해야 했던 상황
** 소스내에서 갖다 쓰는 jar 내부의 메소드 자체를 수정하여 목적지 서버 ip를 파라미터로 받게끔 처리해주는게 베스트..
하지만 jar 만드신 분이 본인보다 상급자라면 별 수 없다.
1) pom.xml 에 profiles 설정 및 local repository 설정
| 
 1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
35 
36 
37 
38 
39 
 | 
 <repositories> 
      <repository> 
         <id>local-repository</id> 
         <url>file:${basedir}/repo</url> 
      </repository> 
       </repositories> 
    <profiles> 
      <profile> 
         <id>dev</id> 
         <dependencies> 
            <dependency> 
               <groupId>chat</groupId> 
               <artifactId>chatmodule-dev</artifactId> 
               <version>0.0.6</version> 
            </dependency> 
         </dependencies> 
      </profile> 
      <profile> 
         <id>tb</id> 
         <dependencies> 
            <dependency> 
               <groupId>chat</groupId> 
               <artifactId>chatmodule-tb</artifactId> 
               <version>0.0.6</version> 
            </dependency> 
         </dependencies> 
      </profile> 
      <profile> 
         <id>live</id> 
         <dependencies> 
            <dependency> 
               <groupId>chat</groupId> 
               <artifactId>chatmodule-</artifactId> 
               <version>0.0.6</version> 
            </dependency> 
         </dependencies> 
      </profile> 
   </profiles> 
 | 
cs | 
2) 프로젝트 내에 local repository 구성

repo > chat > chatmodule/chatmodule-dev/chatmodule-tb > 0.0.6 > chatmodule-~.jar 와 같이 구성
chatmodule-~.jar : 운영서버 배포시 사용될 jar
chatmodule-tb~.jar : 테스트서버 배포시 사용될 jar
chatmodule-dev~.jar : 개발서버 배포시 사용될 jar
3) Maven Profile 선택

Maven > Select Maven Profiles 클릭.

활성화 시킬 profile(dev/tb/live) 선택
4) Maven update
5) Maven Build (war 파일 생성)

profile(dev/tb/live) 선택
6) war 파일 및 jar 확인
빌드가 성공적으로 끝났으면,
workspace/프로젝트/war파일명/target/WEB-INF/lib/
경로로 이동하여 지정한 profile 의 jar가 잘 들어갔는지 확인.
※
위와 같이 profile 을 사용하여 환경별 jar 를 동적으로 사용하는게 아닌,
단순히 로컬(프로젝트 내)에 존재하는 jar 1개를 사용하고자 할 경우
local repository 를 잡을 필요 없이 아래와 같이 scope 를 system 으로 주고 프로젝트 내에서 jar 를 가져다 사용할 수 있다.
| 
 1 
2 
3 
4 
5 
6 
7 
 | 
 <dependency> 
    <groupId>chat</groupId> 
    <artifactId>mobile</artifactId> 
    <version>0.0.1</version> 
    <scope>system</scope> 
    <systemPath>${basedir}/src/main/webapp/WEB-INF/lib/chat_0.0.1.jar</systemPath> 
</dependency> 
 | 
cs | 
'back > Spring Framework' 카테고리의 다른 글
| [Spring Fw] POI(Excel lib) 를 사용하여 다운로드하기 (7) | 2019.07.15 | 
|---|---|
| 스프링프레임워크 log4j2 설정 : Spring Framework + log4j 2 + slf4j + jboss/wildfly(ver 9) (0) | 2019.05.10 | 
| 스프링프레임워크 AOP를 사용한 로그 출력 : Spring + AOP + logger (0) | 2019.04.19 | 
| Exception클래스의 구현과 AOP 설정을 이용한 예외처리 (0) | 2019.02.12 | 
| 스프링 property 동적 설정(환경변수 사용) (0) | 2018.12.05 |