여러 상황에 맞는 프로퍼티 내용을 배포 후에도 수정하고 바로 적용 시키는 걸 위해서 기존에 jar에 담아 배포하던
properties 관련 xml파일을 분리 배포하는 방법을 찾았었다.ㅏ
jar 에 포함되면 propertie조금 바꿨다고 다시 배포본을 말고, 그걸 다시 배포하고 하는 쓸데 없는 일이 자꾸 벌어진다..
배포하는 용도에 따라서 분리해서 배포해내고도 싶었다.
그래서 이용하게 된 것이 maven-resources-plugin이다.
배포본 생성 시에 파라미터를 통해 어떤 것을 분리해서 복사할 지를 정하게도 했다.
pom.xml에 아래 처럼 maven-resources-plugin의 설정 정보를 입력했다.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>copy-resources</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<encoding>UTF-8</encoding>
<outputDirectory>${basedir}/target/config/properties</outputDirectory>
<resources>
<resource>
<directory>src/main/resources/config/properties/${deploy.phase}</directory>
<filtering>true</filtering>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
bold처리한 부분들이 조금 설정하다가 햇갈렸던 부분들이다.
maven도 따로 시간을 내서 이것 저것 해보고 좋은 방법들을 뽑아놔야되는데, 일단은 기초 재점검중이라 미루기로하다보니
일이 그때그때 찾아하는 상황이다.. 또까먹고 또찾기전에 이렇게 적어놔야겠다.
기본 프로젝트 구조가
src/main/java에는 소스를
src/main/resources에는 설정 정보를 담았다
여기서 resources하위에 config 또 그 아래 properties에 properties관련 xml파일을 갖고 있었다.
여기서 properties하위 에는 상황별 그러니까 위에다 xml에 적어놓은 것중 ${deploy.phase}를 통해 어떤 디렉터리의
xml 을 가져올지 정한다.
아래가 변수를 설정한 내용이다. IDE는 Eclipse
Parameter Name에 사용할 변수 그리고 value 에 내가 넣고자하는 내용을 넣었다.
결국은 properties디렉터리 아래 self에 있는 xml을 배포한 jar의 위치에 config/properties/디렉터리에
복사해서 넣어둔다.
이 xml 파일을 불러와서 실행하게끔 설정하려면?
이런식으로 file:./config/properies/application-properties.xml
을 불러오면 된다.
실행할 jar가 있는 위치에 상대적으로 불러오게끔
나중에 또 쓸일이 있길바라며
'프로그래밍' 카테고리의 다른 글
Spring boot mongo DB replica set 설정하기, xml에서 java config로 전환 (0) | 2019.02.20 |
---|---|
Spring boot starter data MongoDB interface repository 를 인식하지 못할 때 (0) | 2019.02.19 |
maven clean install 후 runnable jar 배포설정 (0) | 2018.07.13 |
AOP 사용하지 않던 프로젝트에 AOP 추가 시 발생한 문제 (0) | 2018.07.09 |
AspectJ 수동 추가 후 일부 Pointcut이 정상적으로 동작하지 않을 때 해결하기 (0) | 2018.06.29 |