通常的我建立的項目都是基於Maven的,可是不少人也喜歡用Ant打包jar,或者war.我通常都會在項目中既包含Maven的pom.xml,也會有ant的build.xml java
只要在控制檯執行: web
mvn dependency:copy-dependencies而後執行:
ant OR ant javadoc就會打包程序或者生成項目的Javadoc文檔.
打包的程序通常在:${project.path}/target/dist/${version}/ shell
JavaDoc文檔通常在${project.path}/target/ant/javadoc/ app
通常執行mvn dependency:copy-dependencies會把依賴的jarcopy到${project.path}/target/dependency/目錄下.能夠很容易的利用好Ant. dom
build.xml webapp
<?xml version="1.0" encoding="UTF-8"?> <project name="dsolrcloud" default="default" basedir="."> <description>Builds, tests, and runs the project dsolrcloud.</description> <property environment="env"/> <property name="version" value="1.0"/> <property name="project" value="dsolrcloud"/> <property name="package" value="dsolrcloud"/> <property name="domain" value="net"/> <property name="author" value="ZhenQin"/> <property name="vendor" value="ZhenQin"/> <property name="src.dir" location="src/main/java"/> <property name="build.dir" location="target/ant/classes" /> <property name="dist.dir" location="target/dist"/> <property name="config.dir" location="src/main/resources" /> <property name="doc.dir" location="target/ant/javadoc"/> <property name="web.root" location="src/main/webapp" /> <property name="lib.dir" location="target/dependency"/> <property name="test.dir" location="src/test/java"/> <path id="classpath"> <fileset dir="${lib.dir}" includes="**/*.jar"/> </path> <target name="makedir" description="創建文件夾"> <mkdir dir="${dist.dir}"/> <mkdir dir="${build.dir}"/> <mkdir dir="${lib.dir}"/> <mkdir dir="${test.dir}"/> </target> <target name="compile" depends="makedir" description="編譯代碼"> <!-- 編譯全部的代碼,Server and client --> <javac srcdir="${src.dir}" destdir="${build.dir}" encoding="UTF-8" includeantruntime="no" excludes="**/test/*,**/test/bean/*,**/*.svn,*.svn" includes="**/*.java" source="1.6" target="1.6" deprecation="true" failonerror="true" debug="true"> <classpath refid="classpath" /> </javac> <!-- 把全部文件copy到build目錄 --> <copy todir="${build.dir}"> <fileset dir="${config.dir}" includes="**/*"/> </copy> </target> <!--生成Javadoc 文檔 --> <target name="javadoc" description="生成Javadoc文檔."> <delete dir="${doc.dir}"/> <mkdir dir="${doc.dir}"/> <javadoc destdir="${doc.dir}" windowtitle="${project} Javadoc" use="yes" linksource="no" splitindex="yes" encoding="UTF-8" docencoding="UTF-8" locale="zh_CN"> <classpath refid="classpath"/> <packageset dir="${src.dir}" defaultexcludes="yes"> <include name="${domain}/${package}/**"/> </packageset> </javadoc> </target> <target name="package" depends="compile" description="打包成Jar" > <mkdir dir="${dist.dir}/${version}" /> <tstamp> <format property="TODAY" pattern="yyyy-MM-dd HH:mm:ss"/> <format property="TIME" pattern="yyMMddHHmm"/> </tstamp> <manifest file="${web.root}/META-INF/MANIFEST.MF"> <attribute name="Created-By" value="${author}"/> <attribute name="Built-Date" value="${TODAY}"/> <attribute name="Implementation-Title" value="${project}"/> <attribute name="Implementation-Version" value="${version}"/> <attribute name="Implementation-Vendor" value="${vendor}"/> </manifest> <!-- 打包全部的編譯文件 --> <jar jarfile="${dist.dir}/${version}/${domain}.${package}.${project}.bin.${version}.v${TIME}.jar" basedir="${build.dir}" manifest="${web.root}/META-INF/MANIFEST.MF"> </jar> <!-- 生成Web配置及部署文件 --> <war destfile="${dist.dir}/${version}/${project}.v${TIME}.war" webxml="${web.root}/WEB-INF/web.xml" manifest="${web.root}/META-INF/MANIFEST.MF"> <fileset dir="${web.root}" excludes="${web.root}/WEB-INF/classes/*"></fileset> <classes dir="${build.dir}" /> <lib dir="${lib.dir}" includes="**/*.jar" /> </war> <!-- <jar jarfile="${dist.dir}/${version}/${domain}.${package}.${project}.client.bin.${version}.v${TIME}.jar" basedir="${client.build.dir}" manifest="${web.root}/META-INF/MANIFEST.MF"> </jar> <jar jarfile="${dist.dir}/${version}/${domain}.${project}.sources.${version}.jar" basedir="${src.dir}" manifest="${web.root}/META-INF/MANIFEST.MF"> </jar> <jar jarfile="${dist.dir}/${version}/${domain}.${project}.testsource.${version}.jar" basedir="${test.dir}" manifest="${web.root}/META-INF/MANIFEST.MF"> </jar> <jar jarfile="${dist.dir}/${version}/${domain}.${project}.javadoc.${version}.jar" basedir="${doc.dir}" manifest="${web.root}/META-INF/MANIFEST.MF"/> --> </target> <target name="destory" description="最後的清理" > <delete includeemptydirs="true"> <fileset dir="${build.dir}" includes="**/*" /> </delete> </target> <target name="default" depends="package, destory"> </target> </project>