ANT编译java文件并上传到hadoop环境jar并运行

<?xml version="1.0" encoding="utf-8"?>
<project name="项目名称" basedir="." default="sshexec">
	<description>本配置文件共ANT编辑项目、自动化进行单元测试、打包并部署使用</description>
	<description>默认操作 (输入命令:ant) 为编译源程序并发布运行</description>
	
	<!-- 属性设置 -->
	<!-- property environment="env"/ -->
	<!--property file="build.properties"/ -->
	<!--property name="java.lib.dir" value="${env.JAVA_HOME}/lib"/ -->
	<property name="project" location="bigdata"/> 
	<property name="src.dir" value="${basedir}/src"/><!-- 设置变量,指向被编译的java代码的位置 --> 
	<property name="classes.dir" value="${basedir}/classes"/><!-- 设置变量,指向编译后的class文件的位置 -->
	<property name="dist.dir" value="${basedir}/dist"/> <!-- 设置变量,指向编译后生成jar包的位置 -->  
	<property name="project.lib.dir" value="${basedir}/lib"/><!-- 设置变量,指向所依赖的jar包所在的位置 --> 
	<property name="localpath.dir" value="${basedir}"/>
	<property name="remote.home" value="~"/>
	<!-- 可以修改 -->
	<property name="remote.hostname" value="hadoop1"/>
	<!-- 可以修改 -->
	<property name="remote.username" value="root"/>
	<!-- 可以修改 -->
	<property name="remote.password" value="root"/>
	<!-- 可以修改:每次需要知道的main类,写到这里 -->
	<property name="main.class" value="hdfs.App1"/>
	
	<!-- 基本编译路径设置 -->
	<path id="compile.classes">
		 <pathelement path="${dist.dir}" />       
		<fileset dir="${project.lib.dir}">
			<include name="**/*.jar"/>
		</fileset>
	</path>
	
	<!-- 清理删除临时目录-->
	<target name="clean" description="清理删除临时文件">
		<!-- delete dir="${build.dir}"-->	
		<delete dir="${dist.dir}" />
		<delete dir="${classes.dir}" />
	</target>
	<!-- 初始化,建立目录,复制文件-->
	<target name="init" depends="clean" description="初始化,建立目录,复制文件">
		<mkdir dir="${classes.dir}"/>
		<mkdir dir="${dist.dir}"/>
	</target>
	<!-- 编译源文件-->
	<target name="compile" depends="init" description="编译源文件">
		<!-- 编译的版本不能比运行的版本高 -->
		<javac srcdir="${src.dir}" destdir="${classes.dir}" fork="true" executable="F:\jdk1.6.0_45\bin\javac"
			includeantruntime="on" classpath="${lib}">
			<classpath refid="compile.classes"/>
		</javac>
	</target>
	<!-- 打包类文件-->
	<target name="jar" depends="compile" description="打包类文件">
		<jar jarfile="${dist.dir}/jar.jar" basedir="${classes.dir}">
			<!--fileset dir="${classes.dir}" includes="**/*.*"/-->
		</jar>
	</target>
	<!-- 上传到服务器 
	**需要把lib目录下jsch-0.1.15拷贝到$ANT_HOME/lib下,如果Eclipse下的ant环境必须在Windows->preference->ANT->RUNIIME->CLASSPATH中加入jscn-0.1.15.
	-->
	<target name="ssh" depends="jar">
		<scp file="${dist.dir}/jar.jar" todir="${remote.username}@${remote.hostname}:${remote.home}" password="${remote.password}" trust="true"/>
	</target>
	<target name="sshexec" depends="ssh">
		<sshexec command="/home/hadoop/hadoop-2.6.5/bin/hadoop jar ${remote.home}/jar.jar ${main.class}" host="${remote.hostname}" username="${remote.username}" password="${remote.password}" trust="true"  />
	</target>
</project>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值