'자동화'에 해당되는 글 2

  1. 2012.08.13 [Ant] Jar Task
  2. 2009.07.25 [IBM dWs] SchemaSpy - 데이터베이스 문서화하기

[Ant] Jar Task

- jar로 패키징하고 실행시킨다.


<project default="test">

    <target name="test">
		<echo>!!!!</echo>
    </target>
  
    <target name="jar">
    	<jar destfile="HelloWorld.jar">
            <fileset dir="classes.api">
            	<include name="include/*"/>
            </fileset>
            <fileset dir="dist/PORTAL-INF/classes/">
            	<include name="*.txt"/>
            </fileset>
		</jar>
    </target>
      
    <target name="jar1">
    	<jar destfile="HelloWorld1.jar" basedir="classes.api">
            <manifest>
                <attribute name="Main-Class" value="test.HelloWorld"/>
            </manifest>
		</jar>
    </target>
    
    <target name="run">
        <java jar="HelloWorld1.jar" fork="true"/>
    </target>

</project>

- EJB에서 사용할 모듈을 패키징한다.


Eclipse Export 기능에서는 dist/PORTAL-INF/classes/123.txt 를 제일 상단에 위치시키지 못한다.

(디렉토리 구조 그대로 패키징한다.)

그래서 dist/PORTAL-INF/classes/123.txt 를 프로젝트 root에 복사해 두고 패키징했는데 관리하기가 번거롭다.


Export 기능은 너무 번잡해서 Ant를 사용함.

<project default="jar">
  
    <target name="jar">
    	<jar destfile="xxx4prt.common.ejb.jar">
            <fileset dir="classes.api">
            	<include name="net/xxx/**"/>
            </fileset>
            <fileset dir="dist/PORTAL-INF/classes/">
            	<include name="*.properties"/>
            </fileset>
		</jar>
    </target>
</project>

- Zip task도 비슷함.


[IBM dWs] SchemaSpy - 데이터베이스 문서화하기

- 사람을 위한 자동화: 전자동 문서화

- SchemaSpy - Graphical Database Schema Metadata Browser

- Graphviz 가 필요함.
이클립스를 사용하면 설치후 이클립스 재시작 필요
재시작하지 않으면 PATH에 추가된 Graphviz를 Ant로 실행시키지 못한다.

- Ant
<project name="schemaspy" default="create_schema" basedir=".">

	<property name="reports.dir" value="doc/db/schema/"/>
	<property name="driver.jar" value="web/WEB-INF/lib/jtds-1.2.2.jar"/>
	<property name="schemaSpy.jar" value="devlib/schemaSpy_4.1.1.jar"/>

	<target name="create_schema">
		<java jar="${schemaSpy.jar}" output="${reports.dir}/output.log" error="${reports.dir}/error.log" fork="true" failonerror="true">
		    <arg line="-t mssql05-jtds"/>
		    <arg line="-host 127.0.0.238"/>
		    <arg line="-port 1433"/>
		    <arg line="-db DATABASE"/>
		    <arg line="-s dbo"/>
		    <arg line="-u USER"/>
		    <arg line="-p PASSWORD"/>
		    <arg line="-i TEST"/>
		    <arg line="-desc 'xxxxxxx'"/>
		    <arg line="-cp ${driver.jar}"/>
		    <arg line="-o ${reports.dir}/out"/>
		    <arg line="-charset UTF-8"/>
		</java>
	</target>
	
</project>	

- 실행 옵션
  • -s : SQL Server 2005에서는 테이블명이 dbo.TABLE로 되어 있음. dbo로 지정해야 함.
  • -i : TB.* 는 TB로 시작하는 테이블/뷰만을 대상으로 한다.
  • -cp : path 태그는 안되고 property로 해야 함. 드라이버 위치를 지정해 준다.
  • -charset : 지정하지 않으면 한글이 깨짐
- 뷰도 보임
그러나 다른 데이터베이스 개체는 안보임.