Flex ANT관련 자료는 지돌스타님이 자세히 써주셨기때문에 참고해주세요.
http://blog.jidolstar.com/505

mxmlc로 컴파일을 해본적이 없어서 작성하는데에 욕봤습니다.
우선 ANT에서 제공하는 태그들이 있는데요. 그걸 이용해서 하려고 하는데 잘 안돼서-_- 그냥 exec로 작성했습니다 ㅠㅠ

그냥 rsl을 사용하지 않은 프로젝트는 ant로 매우 쉽게 할 수 있는데, RSL을 사용하면 조금 복잡해집니다.

RSL로 사용할 Flex Library Project를 하나 만듭니다. 그리고 클래스나 MXML을 추가하게 되면 bin디렉토리에 *.swc파일이 생깁니다. 이걸이용해서 메인프로젝트에서 컴파일을 해야합니다. 또한 *.swc파일을 이용해서 optimizer된 *.swf를 만들어야합니다.
[code]<target name="optimizer">
    <unzip src="${SWC파일}" dest="${SWC파일을 풀어놓을 디렉토리}" />
    <exec executable="${optimizer.exe파일 경로}">
        <arg line="-input '${SWC파일 풀어놓은 디렉토리}/library.swf'" />
        <arg line="-output '{아웃풋할 파일명.swf}'" />
    </exec>
</target>[/code]
몰랐는데, SWC파일 풀면 library.swf가 나오는데, 그걸 optimizer.exe한 것이 Flex Builder에서 나오는 swf파일이랑 같은것이더라구요(알고보니 나만 몰랐던거....다 알고있었음!-_-)
이렇게 하면 swf파일이 만들어집니다.
그럼 메인프로젝트 컴파일 하려면 이런식으로 하면 됩니다.
[code]<target name="compile">
    <exec executable="${mxmlc.exe파일 경로}">
        <arg line="-verify-digests=false" />
        <arg line="-runtime-shared-library-path '${rsl swc파일경로}' '${rsl경로위치url}'" />
        <arg line="-o '${아웃풋 경로}'" />
        <arg line="'${소스mxml메인파일}'" />
    </exec>
</target>[/code]
compile하기전에 optimizer target을 depends해야함^^
아마 verify-digests는 properties에서 설정할 때 체크하는 그것일꺼에요. 음..저는 이런식으로 하니까 되더라구요-_- -runtime-shared-library-path에서 swc파일 경로랑 rsl경로위치url(나중에 파일을 올릴 때 해당 위치에 있어야할 url입니다)로 지정하니 되더군요. 이것때문에 고생을 좀 해서-_-
메인프로젝트에 SWC파일을 LIB로 사용한다면 이런식으로 해야하구요^^
[code]<arg line="-library-path+='${basedir}/libs/Mate_08_8_1.swc'" />[/code]
ftp올리는 것도 지돌스타님 블로그에 잘 정리 되어있음!
http://blog.jidolstar.com/506
이러면 원클릭 배포가 가능해짐-_- 귀차니즘을 위한 ANT임!-_-
 
Posted by 머드초보
,
 

ANT라는 훌륭한 배포툴이 있었을 줄이야-_-;
그냥 Spring Framework 쎕바쎕~ 예제를 따라하다가 여기서 ant로 컴파일하고 배포하고 막 그르거든요^^
http://www.springframework.org/docs/Spring-MVC-step-by-step/index.html
이게 Spring MVC 스텝바이스텝 예제인데요. 여기서 ANT로 컴파일하고 해당 톰캣에 배포까지는 하는데요.
로컬에 있는 TOMCAT에서만 하고 실제 원격지에다가 deploy하는 법은 또 따로 있더라구요.

http://tomcat.apache.org/download-60.cgi
톰캣 다운로드 홈페이지를 가면, Core 랑 Deployer 2개가 있어요(Tomcat을 한 100번은 받아본 것 같은데 Deployer는 처음봐요-_-;)
Deployer를 받아야해요.

그런다음에 적당한 곳에 압축을 풀어봅시다.
저는 D:/apache-tomcat-6.0.16-deployer/ 이 경로에다가 풀었어요.

build.xml파일을 열어봅시다.
[code]
<property name="deployer.lib" value="D:/apache-tomcat-6.0.16-deployer/lib" />

<path id="deployer.classpath">
  <fileset dir="${deployer.lib}">
   <include name="*.jar"/>
  </fileset>
 </path>

<!-- Configure the custom Ant tasks for the Manager application -->
<taskdef resource="org/apache/catalina/ant/catalina.tasks"
     classpathref="deployer.classpath"/>
[/code]
요렇게 추가를 해봅시다. deployer에 있는 lib를 경로로 추가하는 것이 포인트입니다 ^^
그러면 <deploy>태그를 사용할 수 있더군요.
저것을 추가하지 않으면 이렇게 뜹니다.

D:\workspace\workspace_java\springapp\build.xml:76: Problem: failed to create task or type deploy
Cause: The name is undefined.
Action: Check the spelling.
Action: Check that any custom tasks/types have been declared.
Action: Check that any <presetdef>/<macrodef> declarations have taken place.

그럼 <deploy>태그를 이용해서 원격지 서버에 배포할 수 있습니다.
[code]
<target name="server_deploy" depends="deploywar" description="server deploy">
  <deploy url="${tomcat.manager.url}"
   username="${tomcat.manager.username}"
   password="${tomcat.manager.password}"
   path="/${name}"
   war="file:${name}.war"
   update="true">
  </deploy>
 </target>
[/code]
자세히 보면 depends는 deploywar인데 이 target은 war로 만들어주는 target입니다. 저것을 먼저 실행한 후 war파일을 생성한 뒤 그 war파일을 해당 서버에 deploy하는 것이죠.
tomcat.manager.url은 http://서버아이피:8080/manager
tomcat.manager.username는 매니저id
tomcat.manager.password는 매니저password

tomcat에 매니저아이디를 추가하는 것은 (6.0기준)
{tomcat홈}/conf/tomcat-users.xml 파일을 수정해야합니다.
[code]
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
  <role rolename="manager"/>
  <user username="manager" password="manager1" roles="manager"/>
</tomcat-users>
[/code]
저렇게 추가를 하면 돼요.
 
Posted by 머드초보
,