Eclipse配置工程自动执行ant实现热部署
思路:配置 Eclipse?自動執行一個Ant腳本,在Ant腳本內自己定義熱部署的步驟,這樣在每個文件更新后就可以自動部署到服務的目錄中了。
一、配置Eclipse 工程自動執行一個Ant?腳本。
1.右健項目工程--builders--import--選擇當前項目下的build.xml,對于我現的工程,Ant 文件在D:\eclipse\workspace\工程名\plugins\hotcopy\hot-copy.xml
2.選中選擇的build.xml--Edit--targets--Auto Build--set Targets--選擇要自動build的targetName,對于我的工程,targetName為? 工程名hot-copy.xml
3、配置build參數,在下面界面上可以看到
-Dresource_loc=${resource_loc}
-Dresource_path=${resource_path}
-Dresource_name=${resource_name}
-Dwar.deploy.dir=D:\jboss-4.0.2\server\default\deploy\bap.war
?
war.deploy.dir:表示服務器的路徑,需要改變,其他三個參數只有原樣復制即可。
?
其配置界面如下:
?
二、編寫自動部署文件:D:\eclipse\workspace\工程名\plugins\hotcopy\hot-copy.xml
其內容如下:
<?xml version="1.0"?> <project name="deploy"><!--引用了ant-contrib-1.0b3.jar包,需要放到當前目錄\lib目錄下--> <path id="ant.contrib.lib"><fileset dir=""><include name="**/*jar" /></fileset></path><taskdef resource="net/sf/antcontrib/antcontrib.properties"><classpath><path refid="ant.contrib.lib" /></classpath></taskdef><target name="deploy.hotcopy"> <!--resource_loc:需要傳入的變量,在上的Eclipse圖中可以看到,引用Eclipse的環境變量即可--> <available property="is.present" file="${resource_loc}" /><available property="is.dir" file="${resource_loc}" type="dir" /><condition property="is.file"><and><isset property="is.present" /><not><isset property="is.dir" /></not></and></condition><antcall target="deploy.hotcopy.webdocs" /></target><target name="deploy.hotcopy.webdocs" if="is.file"><if><!--只有當前的文件、文件夾的路徑中存在webdocs才進行拷貝,只是根據工程目錄規劃決定的--> <contains string="${resource_path}" substring="\webdocs" /><then><propertyregex property="webdocs-path" input="${resource_path}" regexp=".*\\webdocs(\\.*)\\${resource_name}" select="\1" casesensitive="true" /><if><isset property="webdocs-path" /><then><property name="target.dir" value="${war.deploy.dir}${webdocs-path}" /></then><else><property name="target.dir" value="${war.deploy.dir}" /></else></if><copy todir="${target.dir}" preservelastmodified="true" file="${resource_loc}" /></then></if></target> </project>?
對于一個普通的XML文件,打印出resource打的相關變量,有利于理解.
?????[echo] resource_loc:D:\eclipse\workspace\工程名\src\webdocs\decorators\level-2-page-decorator.jsp
???? [echo] resource_path:\工程名\src\webdocs\decorators\level-2-page-decorator.jsp
???? [echo] resource_name:level-2-page-decorator.jsp
三、總結
做了上面的配置,Eclipse會檢查每一個新修改的文件,看是否需要拷貝,所以Eclipse 的速度會變慢。所以實現的效果并不是太好,但是這種機制很好,Eclipse自動調用我們編寫的Ant文件,可以執行任何操作。
超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生總結
以上是生活随笔為你收集整理的Eclipse配置工程自动执行ant实现热部署的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle中使用sys_connect
- 下一篇: java.lang.OutOfMemor