sftp 업로드를 위해서 http://www.jcraft.com/jsch/ 에서 jsch-0.1.xx.jar 를 받아야 한다.
수정된 파일만 업로드 하기 위해서 modified 내용을 작성해야 한다.
propertyfile을 작성하여 수정된 파일이 있는지 검색하고 수정된 것이 있으면 업로드 한다.
build.xml 의 basedir 과 같은 경로에 cache 파일이 생성되는데 이 파일 업로드를 제외하면
수정된 파일만 올라가지 않는다.
절대 exclude 로 설정하면 안된다.
build.xml
<?xml version="1.0" encoding="EUC-KR"?>
<project name="usedcar" basedir="../../" default="jsp 업로드">
<property name="dev.server" value="111.222.333.444"/>
<property name="dev.port" value="22" />
<property name="dev.ai.dir" value="/data/ai"/>
<property name="ai.aiB.dir" value="/data/aiB"/>
<property name="dev.test.dir" value="/test"/>
<property name="dev.userid" value="userid"/>
<property name="dev.pw" value="password"/>
<taskdef name="ssh" classname="com.sshtools.ant.Ssh" />
<target name="jsp 업로드">
<ssh host="${dev.server}" port="${dev.port}" username="${dev.userid}" password="${dev.pw}" version="2">
<sftp action="put" remotedir="${dev.test.dir}" verbose="true" depends="yes">
<fileset dir=".">
<modified update="true" seldirs="true" cache="propertyfile" algorithm="digest" comparator="equal">
<param name="cache.cachefile" value="uploadCache.properties" />
<param name="algorithm.algorithm" value="MD5" />
</modified>
<include name="jsp/**" />
</fileset>
</sftp>
</ssh>
</target>
<target name="src 업로드">
<ssh host="${dev.server}" port="${dev.port}" username="${dev.userid}" password="${dev.pw}" version="2">
<sftp action="put" remotedir="${dev.test.dir}" verbose="true" depends="yes">
<fileset dir=".">
<modified update="true" seldirs="true" cache="propertyfile" algorithm="digest" comparator="equal">
<param name="cache.cachefile" value="uploadCache.properties" />
<param name="algorithm.algorithm" value="MD5" />
</modified>
<include name="src/**" />
<exclude name="src/com/properties/system.properties" />
<exclude name=".classpath" />
<!-- 올리지 말아야 할 파일 추가 -->
</fileset>
</sftp>
</ssh>
</target>
<!--
<target name="개발모두업로드">
<ssh host="${dev.server}" port="${dev.port}" username="${dev.userid}" password="${dev.pw}" version="2">
<sftp action="put" remotedir="${dev.ai.dir}" verbose="true" depends="yes">
<fileset dir=".">
<modified update="true" seldirs="true" cache="propertyfile" algorithm="digest" comparator="equal">
<param name="cache.cachefile" value="uploadCache.properties" />
<param name="algorithm.algorithm" value="MD5" />
</modified>
<include name="front/**" />
<include name="src/**" />
</fileset>
</sftp>
<sftp action="put" remotedir="${dev.aiB.dir}" verbose="true" depends="yes">
<fileset dir=".">
<include name="front/**" />
<include name="src/**" />
</fileset>
</sftp>
</ssh>
</target>
<target name="개발JAVA업로드">
<ssh host="${dev.server}" port="${dev.port}" username="${dev.userid}" password="${dev.pw}" version="2">
<sftp action="put" remotedir="${dev.ai.dir}" verbose="true" depends="yes">
<fileset dir=".">
<include name="src/**" />
<exclude name="**.properties" />
</fileset>
</sftp>
<sftp action="put" remotedir="${dev.aiB.dir}" verbose="true" depends="yes">
<fileset dir=".">
<include name="src/**" />
<exclude name="**.properties" />
</fileset>
</sftp>
</ssh>
</target>
<target name="개발JSP업로드">
<ssh host="${dev.server}" port="${dev.port}" username="${dev.userid}" password="${dev.pw}" version="2">
<sftp action="put" remotedir="${dev.ai.dir}" verbose="true" depends="yes">
<fileset dir=".">
<include name="front/**" />
</fileset>
</sftp>
<sftp action="put" remotedir="${dev.aiB.dir}" verbose="true" depends="yes">
<fileset dir=".">
<include name="front/**" />
</fileset>
</sftp>
</ssh>
</target>
-->
</project>
댓글