메이븐(MAVEN) RPM 플러그인으로 RPM 생성하기
최근 수행한 프로젝트에서 스프링부트로 만든 어플리케이션의 최종 빌드 모습은 다음과 같았다.
- myapp.war
- myapp-run.sh
- conf/application.properties
다음은 rpm-maven-plugin의 설정 예제이다.
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>rpm-maven-plugin</artifactId>
<version>2.0.1</version>
<executions>
<execution>
<phase>none</phase>
<goals>
<goal>rpm</goal>
</goals>
</execution>
</executions>
<configuration>
<copyright>2016, MyCompany</copyright>
<group>Development</group>
<description>Maven Recipe: RPM Package.</description>
<version>${project.version}</version>
<release>0</release>
<autoRequires>false</autoRequires>
<preinstallScriptlet>
<scriptFile>src/main/package/rpm/preinstall.sh</scriptFile>
<fileEncoding>utf-8</fileEncoding>
</preinstallScriptlet>
<defaultDirmode>755</defaultDirmode>
<defaultFilemode>644</defaultFilemode>
<defaultUsername>root</defaultUsername>
<defaultGroupname>root</defaultGroupname>
<mappings>
<mapping>
<directory>/usr/local/myapp</directory>
<sources>
<source>
<location>${project.basedir}/target/myapp-${project.version}.war</location>
</source>
</sources>
</mapping>
<mapping>
<directory>/usr/local/myapp</directory>
<filemode>755</filemode>
<sources>
<source>
<location>${project.basedir}/bin/myapp-run.sh</location>
</source>
</sources>
</mapping>
<mapping>
<directory>/usr/local/myapp/conf</directory>
<sources>
<source>
<location>${project.basedir}/conf</location>
</source>
</sources>
</mapping>
</mappings>
</configuration>
</plugin>
</plugins>
</build>
<mapping>에서 각 요소는 다음을 의미한다.
- <directory> : 파일 복사 위치. RPM 설치 과정에서 생성한다.
- <filemode> : 파일의 권한 모드
- <sources> : 해당 복사 위치에 넣을 대상
'JAVA' 카테고리의 다른 글
Java, max user processes, open files (0) | 2019.04.25 |
---|---|
Google Cloud의 Speech API 사용해보기 (0) | 2018.09.13 |
Linux에서 자바 어플리케이션 서버 실행 쉘(Shell) 스크립트 (0) | 2018.08.07 |
Spring 스케쥴러를 이용한 파일 삭제 (수정한 날짜 기준 데이터 삭제) (0) | 2018.03.07 |
HTML5 VIDEO 스트리밍(STREAMING) 서버 프로그래밍 - JAVA (0) | 2018.03.07 |