태그 보관물: Ant

Ant with proguard obfuscate tool

프로그램을 개발하다보면, 개인일 경우에는 상관이 없지만, 회사에서 회사로 상용으로 제공하는 컴포넌트나 라이브러리 같은 경우에는 최소한의 코드 보안은 필수입니다.

특히나 java의 경우에는 decompile이 잘 되는 구조이기 때문에, obfuscate는 꼭 필요하지는 않지만, 사용할 필요가 있습니다.

obfuscate 툴은 상용 버전들과 오픈소스 버전들이 있는데..
아래의 예제는 오픈소스인 proguard를 프로젝트 빌드파일인 build.xml에서 쉽게 사용하고 있는 예제입니다.

<taskdef=”proguard” classname=”proguard.ant.ProGuardTask” classpath=”${lib-ext}/proguard.jar” />
<task name=”dist-with-obfuscate” depends=”compile” >
  <proguard>
        -libraryjars ${java.home}/lib/rt.jar <– java library
        -injars maked-jar.jar  <– jar task로 만들어진 원본 jar 파일
        -outjar maked.jar <– 만들어질 jar 파일
        -keep class net.sjava.obfuscate.TestMain { public *; } <– main 클래스의 public은 예외
        -verbose <– 과정을 화면에 뿌림
  </proguard>
</task>

더 자세한 내용은 http://proguard.sourceforge.net/manual/examples.html 에서 참고를 하세요.. ^^

이클립스에서 앤트 FTP Task 사용하기

앤트(ANT)로 빌드파일(build.xml)을 만들고, 빌드 스크립트를 사용해서 컴파일된 바이너리를 FTP로 리모트에 전송할 수 있다. 이 기능을 사용하는 방법은 아래와 같다.

1. FTP 라이브러리 설치
http://commons.apache.org/net/의 최신버전을 다운로드 받습니다.
다운로드 받은 라이브러리인 commons-net-1.x.x.jar 파일을 이클립스가 설치된 폴더/plugins/ant설치버전/lib 폴더에 카피를 합니다. 참고로, 현재 최신버전은 commons-net-1.4.1 이네요.. ^^

2. 이클립스 앤드 Classpath 세팅
Eclipse->Window->Preferences->Ant->Runtime->Classpath->Add External JARS를 통해서 commons-net-1.x.x.jar를 Classpath에 등록한다

3. 실행

  <ftp server=”ftp.yourserver.com” userid=”anonymous” password=”me@yourserver.com”>
<fileset dir=”yourdir/youdocs” />
</ftp>

앤트의 FTP Task에 대한 자세한 내용은 https://ant.apache.org/manual/Tasks/ftp.html 에서 참고를 하시면 됩니다. ^^

call ant task in another build file

Ant로 프로젝트를 빌드할 경우, 의존관계에 있는 프로젝트도 새롭게 빌드하기 위해서는,메인 빌드파일에서 다른 빌드파일의 task를 실행시켜 줘야 합니다.

<target name=”appc”>
  <ant antfile=”${build.dir}/ant/utilities.xml” inheritAll=”true” target=”appc”>
    <property name=”classpath” refid =”${appserver}.path”/>
    <property name=”appcMemory” value=”256m”/>
  </ant>
</target>