운영, 테스트서버, 개발서버 와 같이 서버가 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 |