skrull-config.xml
location : src/main/config/skrull-config.xml
관리주체 :개발자
개발자가 skrull 를 사용하기 위해 사용하는 설정 파일입니다.
다음은 skrull-config.xml 내 각 태그별 설명입니다.
1. includes
entityConfigs 설정을 외부에서 불러올 때 사용합니다.
기본적으로는 includes
태그를 사용하지 않고 다음과 같이 skrull-config.xml 에서 직접 entity 설정을 할 수 있습니다.
<skrull>
<entityConfigs>
<entityConfig tableName="attach" subPackage="common"/>
<entityConfig tableName="category" subPackage="common"/>
<entityConfig tableName="member" subPackage="member"/>
<!-- 기타 모든 entityConfig -->
</entityConfigs>
</skrull>
하지만, 테이블이 많아지면 xml 파일이 비대해 집니다.
이를 방지하기 위해 다음처럼, 관련 서비스별로 분리된 xml 로 관리하고 이를 include 하는 것을 추천합니다.
<skrull>
<includes>
<include filename="entity-config/common.xml"/>
<include filename="entity-config/member.xml"/>
<!-- 기타 모든 외부 entityConfigs -->
</includes>
</skrull>
다음과 같이 includes 와 entityConfigs 를 함께 사용 할 수도 있습니다.
<skrull>
<includes>
<include filename="entity-config/common.xml"/>
</includes>
<entityConfigs>
<entityConfig tableName="member" subPackage="member"/>
</entityConfigs>
</skrull>
2. configuration
skrull 설정의 사실상 최상위 요소 입니다.
다음은 각 속성에 대한 설명입니다.
attribute | 설명 |
---|---|
rootPackage | 이 프로젝트의 패키지명을 기입합니다. 해당 패키지명에 따라 생성되는 파일들의 위치와 패키지명들이 결정됩니다. |
applicationName | 이 프로젝트의 이름을 기입합니다. 이 속성은 코드 생성에 영향을 미치지 않습니다. |
jpaUseSchema | schema 정보를 포함한 sql 을 생성할지 여부를 결정합니다. |
configuration 태그 예제
<configuration rootPackage="com.unvus.sample" applicationName="my-sample" jpaUseSchema="TRUE">
<licenses>
</licenses>
..
..
..
<conventions>
</conventions>
</configuration>
3. licenses
gen
플러그인을 사용하기 위해서는 license 가 필요하합니다. (metadata
플러그인은 license 가 필요 없습니다.)
license 는 configuration 태그의 rootPackage
, applicationName
, 그리고 database 접속 정보
에 의해 결정됩니다.
즉, 위 정보들이 변경되면 license 를 새로 발급 받아야 합니다.
license 는 여러개를 등록 할수 있습니다.
다음은 licenses 태그 예제입니다.
<licenses>
<!-- rootPackage="com.unvus.sample" applicationName="sample" -->
<license key="0B3A8864-FDF622-FE7724-44D466-0ABBFB"/>
<!-- rootPackage="com.unvus.sample2" applicationName="sample2" -->
<license key="22E74699-45EF4C-9F7A01-083A9F-8079F7"/>
</licenses>
4. conventions
<conventions corePackage="modules">
<tableRenamers>
</tableRenamers>
<columnRenamers>
</columnRenamers>
</conventions>
다음은 각 속성에 대한 설명입니다.
attribute | 설명 | 기본값 |
---|---|---|
corePackage | core package(service, repository, domain) 이 생성될 위치(패키지) 를 결정합니다. | core.modules |
다른 속성은 현재 의미있게 사용하지 않고 있지만, 현재 상태를 유지하도록 합니다.
5. tableRenamers
테이블명 기반으로 자바코드를 생성할때, regexp 로 해당 테이블명을 변경하는 방법을 제공해줍니다.
일반적으로 데이터베이스 테이블 설계시 사용하는 tbl_
, tb_
등의 prefix 를 제거 하는데 사용됩니다.
<tableRenamers>
<tableRenamer regexp="tbl_" replace=""/>
<tableRenamer regexp="tb_" replace=""/>
</tableRenamers>
6. columnRenamers
컬럼명 기반으로 자바코드를 생성할때, regexp 로 해당 컬럼명을 변경하는 방법을 제공해줍니다.
일반적으로 데이터베이스 테이블 설계시 사용하는 emp_
, user_
등의 테이블을 상징하는 컬럼 prefix 를 제거 하는데 사용됩니다.
<columnRenamers>
<columnRenamer regexp="^[^_]*_" replace=""/>
</columnRenamers>