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이 프로젝트의 이름을 기입합니다. 이 속성은 코드 생성에 영향을 미치지 않습니다.
jpaUseSchemaschema 정보를 포함한 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설명기본값
corePackagecore 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>