使用ant脚本编译web工程并自动部署到tomcat

本文介绍了如何使用Ant脚本来编译Web工程并自动部署到Tomcat服务器。首先确保配置好JDK、Ant和Tomcat的环境变量,然后在工程根目录创建build.xml文件并配置相应任务。
摘要由CSDN通过智能技术生成

今天老大让我写个脚本将svn上的web工程编译打包并部署到tomcat服务器,于是一个完全完全的小白就开始学习ant了。

一.首先第一步准备条件:

1.配置好jdk环境变量;

2.配置好ant环境变量;

3.配置好tomcat环境变量,不配置可以用写死的路径;

二.编写build.xml

在工程根目录下创建build.xml,并进行如下配置:

<?xml version="1.0" encoding="UTF-8" ?> 
<!--定义一个工程-->
<project name="myProject" default="deploy" basedir=".">
	<!--设置环境变量前缀为env-->
    <property environment="env"/>
	<property name="webapp.name" value="myProjectName" />
	<!--指定tomcat服务器位置-->
	<!--<property name="tomcat.dir" value="${env.CATALINA_HOME}" />-->
	<!--指定ant位置-->
	<property name="ant.dir" value="${env.ANT_HOME}"/>
	<!--指定jdk位置-->
	<property name="jdk.dir" value="${env.JAVA_HOME}"/>
	<!--指定几个关键目录的位置-->
	<property name="webContent.dir" value="${basedir}/WebContent"/>
	<property name="java.dir" value="${basedir}/src/main/java"/>
	<property name="resources.dir" value="${basedir}/src/main/resources"/>
	<property name="lib.dir" value="${basedir}/WebContent/WEB-INF/lib"/>
    <!--将war包生成到工程根目录下的dist文件夹中-->
    <property name="dist.dir" value="${basedir}/dist" />
	<property name="build.dir" value="${basedir}/build"/>
	
	<!--初始化classpath-->
	<path id="project.classpath">
		<fileset dir="${basedir}/WebContent/WEB-INF/lib">
			<include name="**/*.jar" />
		</fileset>
		<!-- ant lib包  -->  
        <fileset dir="${ant.dir}">  
            <include name="**/*.jar" />  
        </fileset>
		<fileset dir="${jdk.dir}">
			<include name="**/*.jar"/>
		</fileset>
	</path>
	
	<!-- 删除之前tomcat中的目录结构 -->  
    <target name="clear" description="清理旧文件">  
        <delete dir="${build.dir}" />
		<echo message="build清理完成"/>
        <delete dir="${dist.dir}" />
		<echo message="dist清理完成"/>
        <delete file="${tomcat.dir}/webapps/${webapp.name}.war" />
		<echo message="tomcat webapp下war包清理完成"/>
        <delete dir="${tomcat.dir}/webapps/${webapp.name}" />  
		<echo message="tomcat webapp下工程清理完成"/>
    </target>
	
	<!-- 创建目录结构 -->  
    <target name="init" depends="clear" description="创建初始化目录结构">  
        <mkdir dir="${build.dir}/classes" />
		<echo message="build下classes创建完成"/>		
        <mkdir dir="${dist.dir}" />
		<echo message="dist创建完成"/>		
    </target>
	
	    <!-- 编译java -->  
    <target name="compile" depends="init" description="编译java文件">
        <echo message="开始编译..." />  
		<javac srcdir="${basedir}/src" destdir="${basedir}/build/classes" includeantruntime="false" 
				source="1.8" target="1.8" debug="true" encoding="UTF-8">
			<classpath refid="project.classpath"></classpath>
			<compilerarg value="-Xlint:unchecked"/>
			<!--给编译器指定编码,防止出现:"警告: 编码 GBK 的不可映射字符"-->
			<compilerarg line="-encoding UTF-8 "/>
			<compilerarg value="-XDignore.symbol.file"/>
		</javac>
        <copy todir="${build.dir}/classes">
            <fileset dir="${java.dir}">
                <include name="**/*.xml" />
                <include name="**/*.properties" />
                <include name="**/*.sql" />
				<include name="**/*.java"/>
				<include name="**/*.class" />
            </fileset>
            <fileset dir="${resources.dir}">
                <include name="**/*.*" />
            </fileset>
        </copy>
        <echo message="编译完成..." />
    </target>
	
	<!-- 打成war包, 名称默认为 项目名 -->  
    <target name="war" depends="compile" description="将工程打成war包">  
        <echo message="开始打war包..." />  
        <war destfile="${dist.dir}/${webapp.name}.war" basedir="${webContent.dir}"   
            webxml="${webContent.dir}/WEB-INF/web.xml">  
            <lib dir="${lib.dir}" />  
            <classes dir="${build.dir}/classes" />  
            <fileset dir="${webContent.dir}">  
                <include name="***.*" />  
            </fileset>  
        </war>  
        <echo message="打war包完成..." />  
    </target>
	
	<!-- copy war包 tomcat的deploy目录 -->  
    <target name="deploy" depends="war" description="部署项目">
        <echo message="开始部署..." />
        <copy file="${dist.dir}/${webapp.name}.war" todir="${tomcat.dir}/webapps" />
        <echo message="部署完成..." />
    </target>
	<!--使用命令"ant -f build.xml -v" 在打log模式下进行编译-->
	<record name="ant.log" loglevel="info" append="no" action="start"/>
</project>
参考上边的配置修改你的build.xml,在当前目录打开命令窗口,执行ant -f build.xml -v(日志模式下进行编译)或者ant,查看编译情况,由于多种因素完全参考出错在所难免,修正错误后,就算完成了。

深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络类型,信息从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如时间序列或自然语言,因为它们具有记忆功能,能够捕捉数据中的时间依赖性。 5. **长短期记忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习长期依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和库。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络中用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的差异,常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性差、计算资源消耗大等。研究人员正在不断探索新的方法来解决这些问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值