当前位置 : 主页 > 手机开发 > harmonyos >

Ant学习笔记

来源:互联网 收集:自由互联 发布时间:2023-08-25
会写代码,能做项目,最后却不会打包和部署,这是一件非常囧的事情。。 于是,ant的学习开始了。这里要吐槽一下百度,搜索结果常常令朕虎躯一震,原则上,点开的网页排版差的一


      会写代码,能做项目,最后却不会打包和部署,这是一件非常囧的事情。。



      于是,ant的学习开始了。这里要吐槽一下百度,搜索结果常常令朕虎躯一震,原则上,点开的网页排版差的一律不看,抄袭抄不全的也一律不看,程序猿也是有脾气的,哈哈。



之前看过的maven,解决依赖包的问题比较爽快,这里要感谢下伟大的apache。



跟当初在linux下学习makefile一知半解的情况相比,再看ant,ant并不是什么特别高端的东西,有maven的话,我可能还是会用maven,因为ant的build文件实在是......长。



 



      废话一大堆,附上自己的build.xml做个纪念,基本上都在注释里写好了用法。



1 <?xml version="1.0" encoding="utf-8"?> 
 2 <project default="main" basedir="."> 
 3     <!-- main可以指定入口target, 默认target可立即执行java入口main函数  --> 
 4     <!-- 常用路径配置 -->  
 5     <property name="src.dir" value="src" /> 
 6     <property name="report.dir" value="report" /> 
 7     <property name="classes.dir" value="classes" /> 
 8     <property name="lib.dir" value="lib" /> 
 9     <property name="dist.dir" value="dist" /> 
10     <property name="doc.dir" value="doc"/> 
11     <property name="main-class" value="com.linxus.main.Main"/> 
12     <property name="user.name" value="Linxus"/> 
13     <!-- 第三方库路径 --> 
14     <path id="classpath"> 
15         <fileset dir="${lib.dir}"> 
16             <include name="*.jar"/> 
17         </fileset> 
18     </path> 
19      
20     <!-- 入口 --> 
21     <target name="main" depends="clean, compile, pack" description="Main target"> <!-- 按依赖的target顺序依此执行 --> 
22         <echo>Finished Building the .jar file.</echo> 
23     </target> 
24  
25     <!-- 清除旧版本 --> 
26     <target name="clean" description="Clean"> 
27         <delete dir="${dist.dir}" /> 
28         <delete dir="${classes.dir}" /> 
29         <echo>Clean up Old Files.</echo> 
30     </target> 
31  
32     <!-- 编译 --> 
33     <target name="compile" description="Compilation target"> 
34         <mkdir dir ="${basedir}/classes"/> 
35         <javac srcdir ="${basedir}/src" destdir ="${basedir}/classes" classpathref="classpath" optimize="true"> 
36             <compilerarg line="-encoding UTF-8 "/><!-- 解决编译时的编码问题 --> 
37         </javac> 
38     </target> 
39  
40     <!-- 打包 --> 
41     <target name="pack" description="Compression target"> 
42         <mkdir dir ="${dist.dir}"/> 
43                 <!-- 这里解决依赖第三方库的问题,MANIFEST.MF文件的CLASS-PATH是需要你自己去指定的,不能偷懒 
44                         否则就是 ☞CLASSNOTFOUNDEXCEPTION --> 
45         <pathconvert  property ="libs.project"  pathsep =" ">  
46             <mapper>  
47                 <chainedmapper> 
48                 <!--  移除绝对路径  -->  
49                 <flattenmapper  />  
50                 <!--  第三方库通常放在lib下。理由在↑  -->  
51                 <globmapper  from ="*"  to ="lib/*"   />  
52                 </chainedmapper>  
53             </mapper>  
54             <path>  
55                 <!--  第三方库的路径  -->  
56                 <fileset  dir ="${lib.dir}" >  
57                        <include  name ="**/*.jar"/>  
58                 </fileset>  
59             </path>  
60         </pathconvert> 
61          
62         <!-- 打包时间的生成 --> 
63         <tstamp> 
64             <format property="buildtime" pattern="yyyy-MM-dd" /> 
65         </tstamp> 
66  
67         <jar destfile="${dist.dir}/JServer-${buildtime}.jar" basedir="${basedir}/classes"> 
68             <!-- log4j配置文件 --> 
69             <fileset dir="${src.dir}"> 
70                 <include name="log4j.properties" /> 
71             </fileset> 
72             <manifest> 
73                                 <!-- 作者个人信息 -->  
74                 <attribute name="Built-By" value="${user.name}" /> 
75                 <attribute name="Built-Time" value="${buildtime}" /> 
76                 <attribute name="Main-Class" value="${main-class}"/> 
77                 <attribute name="Class-Path" value="${libs.project}"/> 
78             </manifest> 
79         </jar> 
80     </target> 
81  
82     <!-- run --> 
83     <target name="run" description="Run target"> 
84         <java classname ="com.linxus.main.Main"> 
85             <classpath> 
86                 <pathelement path="${basedir}/classes/com/linxus/main"/> 
87             </classpath> 
88         </java> 
89     </target> 
90 </project>



 

上一篇:Mina框架HelloWorld入门
下一篇:没有了
网友评论