Skip to content

skrull-config.xml

INFO

location: src/main/config/skrull-config.xml
관리주체: 개발자

개발자가 skrull를 사용하기 위해 사용하는 설정 파일입니다.

다음은 skrull-config.xml 내 각 태그별 설명입니다.

1. includes

entityConfigs 설정을 외부에서 불러올 때 사용합니다.

기본적으로는 includes 태그를 사용하지 않고 다음과 같이 skrull-config.xml에서 직접 entity 설정을 할 수 있습니다.

xml
<skrull>
  <entityConfigs>
    <entityConfig tableName="attach"   subPackage="common"/>
    <entityConfig tableName="category" subPackage="common"/>
    <entityConfig tableName="member"   subPackage="member"/>
    <!-- 기타 모든 entityConfig -->
  </entityConfigs>
</skrull>

하지만, 테이블이 많아지면 xml 파일이 비대해 집니다.
이를 방지하기 위해 다음처럼, 관련 서비스별로 분리된 xml로 관리하고 이를 include 하는 것을 추천합니다.

xml
<skrull>
  <includes>
    <include filename="entity-config/common.xml"/>
    <include filename="entity-config/member.xml"/>
    <!-- 기타 모든 외부 entityConfigs -->
  </includes>
</skrull>

다음과 같이 includesentityConfigs를 함께 사용할 수도 있습니다.

xml
<skrull>
  <includes>
    <include filename="entity-config/common.xml"/>
  </includes>
  <entityConfigs>
    <entityConfig tableName="member" subPackage="member"/>
  </entityConfigs>
</skrull>

2. configuration

skrull 설정의 사실상 최상위 요소 입니다.

다음은 각 속성에 대한 설명입니다.

속성설명
rootPackage이 프로젝트의 패키지명을 기입합니다. 해당 패키지명에 따라 생성되는 파일들의 위치와 패키지명들이 결정됩니다.
applicationName이 프로젝트의 이름을 기입합니다. 이 속성은 코드 생성에 영향을 미치지 않습니다.
jpaUseSchemaschema 정보를 포함한 sql을 생성할지 여부를 결정합니다.

configuration 태그 예제:

xml
<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 태그 예제입니다:

xml
<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

xml
<conventions corePackage="modules">
  <tableRenamers>
  </tableRenamers>
  <columnRenamers>
  </columnRenamers>
</conventions>

다음은 각 속성에 대한 설명입니다.

속성설명기본값
corePackagecore package(service, repository, domain)이 생성될 위치(패키지)를 결정합니다.core.modules

다른 속성은 현재 의미있게 사용하지 않고 있지만, 현재 상태를 유지하도록 합니다.

5. tableRenamers

테이블명 기반으로 자바코드를 생성할때, regexp로 해당 테이블명을 변경하는 방법을 제공해줍니다.

일반적으로 데이터베이스 테이블 설계시 사용하는 tbl_, tb_ 등의 prefix를 제거 하는데 사용됩니다.

xml
<tableRenamers>
  <tableRenamer regexp="tbl_" replace=""/>
  <tableRenamer regexp="tb_" replace=""/>
</tableRenamers>

6. columnRenamers

컬럼명 기반으로 자바코드를 생성할때, regexp로 해당 컬럼명을 변경하는 방법을 제공해줍니다.

일반적으로 데이터베이스 테이블 설계시 사용하는 emp_, user_ 등의 테이블을 상징하는 컬럼 prefix를 제거 하는데 사용됩니다.

xml
<columnRenamers>
  <columnRenamer regexp="^[^_]*_" replace=""/>
</columnRenamers>