java如何打包

java如何打包,第1张

建议使用ANT打包工具,下载地址:http://apache.justdn.org/ant/binaries/apache-ant-1.6.5-bin.zip

此工具用java编写,跨平台,能实现很多功能:编译、打包、运行、文件 *** 作、数据库 *** 作、自定义任务等。

主要使用方法:在工程目录下编写build.xml配置文件,然后运行ant即可:

#ant

#java -jar ant.jar

下面给你提供一个例子,是jakarta-oro-2.0.8的包的build.xml

<?xml version="1.0"?>

<project default="jar">

<!-- Allow properties following these statements to be overridden -->

<!-- Note that all of these don't have to exist. They've just been defined

incase they are used. -->

<property file="build.properties"/>

<!--

<property file=".ant.properties"/>

<property file="${user.home}/.ant.properties"/>

<property file="default.properties"/>

-->

<!-- prepare target. Creates build directories. -->

<target name="splash">

<splash imageurl="./ant_logo_medium.gif"/>

</target>

<target name="prepare" depends="splash" description="Creates build directories.">

<tstamp>

<format property="DATE" pattern="yyyy-MM-dd hh:mm:ss" />

</tstamp>

<mkdir dir="${build.dest}"/>

<mkdir dir="${build.dest}/META-INF"/>

<copy todir="${build.dest}/META-INF">

<fileset dir="${top.dir}">

<include name="LICENSE"/>

</fileset>

</copy>

<mkdir dir="${build.tests}"/>

<available file="${jakarta-site2.dir}/lib" type="dir"

property="AnakiaTask.present"/>

</target>

<target name="prepare-error" depends="prepare"

description="Prints error message for prepare target."

unless="AnakiaTask.present">

<echo>

AnakiaTask is not present! Please check to make sure that

velocity.jar is in your classpath.

</echo>

</target>

<!-- lib target. Compiles the library classes only -->

<target name="lib" depends="prepare"

description="Compiles the library classes only.">

<javac srcdir="${build.src}"

destdir="${build.dest}"

excludes="examples/**,tools/**"

debug="${debug}"

deprecation="${deprecation}"

optimize="${optimize}"/>

</target>

<!-- examples target. Compiles the example classes. -->

<target name="examples" depends="prepare,lib"

description="Compiles the example classes.">

<javac srcdir="${build.src}"

destdir="${build.dest}"

includes="examples/**"

debug="${debug}"

deprecation="${deprecation}"

optimize="${optimize}"/>

</target>

<!-- tools target. Compiles the tool classes. -->

<target name="tools" depends="prepare,lib"

description="Compiles the tool classes.">

<javac srcdir="${build.src}"

destdir="${build.dest}"

includes="tools/**"

debug="${debug}"

deprecation="${deprecation}"

optimize="${optimize}"/>

</target>

<!-- tests target. Compiles and runs the unit tests. -->

<target name="tests" depends="prepare,lib"

description="Compiles and runs the unit tests.">

<javac srcdir="${build.src}/tests"

destdir="${build.tests}"

debug="${debug}"

deprecation="${deprecation}"

optimize="${optimize}"/>

</target>

<!-- jar target. Compiles the source directory and creates a .jar file -->

<target name="jar" depends="lib" description="Compiles the source directory and creates a .jar file.">

<jar jarfile="${top.dir}/${final.name}.jar"

basedir="${build.dest}"

includes="org/**,META-INF/**"

excludes="**/package.html,**/overview.html">

<manifest>

<section name="org/apache/oro">

<attribute name="Specification-Title"

value="Jakarta ORO" />

<attribute name="Specification-Version"

value="${version}" />

<attribute name="Specification-Vendor"

value="Apache Software Foundation" />

<attribute name="Implementation-Title"

value="org.apache.oro" />

<attribute name="Implementation-Version"

value="${version} ${DATE}" />

<attribute name="Implementation-Vendor"

value="Apache Software Foundation" />

</section>

</manifest>

</jar>

</target>

<!-- javadocs target. Creates the API documentation -->

<target name="javadocs" depends="prepare"

description="Creates the API documentation.">

<mkdir dir="${javadoc.destdir}"/>

<javadoc packagenames="org.apache.oro.io,org.apache.oro.text,org.apache.oro.text.regex,org.apache.oro.text.awk,org.apache.oro.text.perl,org.apache.oro.util"

sourcepath="${build.src}"

destdir="${javadoc.destdir}"

overview="${build.src}/org/apache/oro/overview.html"

author="true"

version="true"

windowtitle="${name} ${version} API"

doctitle="${name} ${version} API"

header="<a href='http://jakarta.apache.org/oro/' target=_top><img src='{@docroot}/../images/logoSmall.gif' alt='Jakarta ORO' width=48 height=47 align=center border=0 hspace=1 vspace=1></a>"

bottom="Copyright © ${year} Apache Software Foundation. All Rights Reserved.">

</javadoc>

<replace file="${javadoc.destdir}/overview-frame.html"

token="{@docroot}" value="."/>

<replace dir="${javadoc.destdir}" includes="**/*.html"

token="@version@" value="${version}"/>

</target>

<!-- docs target. Creates project web pages and documentation. -->

<target name="docs" depends="prepare-error,lib,examples"

description="Creates the project web pages and documentation."

if="AnakiaTask.present">

<taskdef name="anakia" classname="org.apache.velocity.anakia.AnakiaTask">

<classpath>

<fileset dir="${jakarta-site2.dir}/lib">

<include name="*.jar"/>

</fileset>

</classpath>

</taskdef>

<anakia basedir="${docs.src}" destdir="${docs.dest}/"

extension=".html" style="./site.vsl"

projectFile="stylesheets/project.xml"

excludes="**/stylesheets/** manual/** empty.xml"

includes="**/*.xml"

lastModifiedCheck="true"

templatePath="${jakarta-site2.dir}/xdocs/stylesheets">

</anakia>

<copy todir="${docs.dest}/images" filtering="no">

<fileset dir="${docs.src}/images">

<include name="**/*.gif"/>

<include name="**/*.jpeg"/>

<include name="**/*.jpg"/>

</fileset>

</copy>

<mkdir dir="${docs.dest}/classes"/>

<mkdir dir="${docs.dest}/classes/examples"/>

<copy todir="${docs.dest}/classes/examples" filtering="no">

<fileset dir="${build.dest}/examples">

<include name="MatcherDemoApplet.class"/>

</fileset>

</copy>

<mkdir dir="${docs.dest}/classes/org"/>

<copy todir="${docs.dest}/classes/org" filtering="no">

<fileset dir="${build.dest}/org">

<include name="**/*.class"/>

</fileset>

</copy>

</target>

<!-- package target -->

<target name="package" depends="jar,javadocs,docs"

description="Creates a distribution directory tree.">

<mkdir dir="${final.dir}"/>

<copy todir="${final.dir}/src">

<fileset dir="${code.src}"/>

</copy>

<!-- BEGIN_REMOVE_THIS -->

<!-- Remove this when there's a first draft of the manual. -->

<copy todir="${final.dir}/docs">

<fileset dir="${docs.dest}">

<exclude name="manual/**"/>

</fileset>

</copy>

<!-- END_REMOVE_THIS -->

<copy file="${top.dir}/build.xml" tofile="${final.dir}/build.xml"/>

<copy file="${top.dir}/build.properties"

tofile="${final.dir}/build.properties"/>

<copy file="${top.dir}/LICENSE" tofile="${final.dir}/LICENSE"/>

<copy file="${top.dir}/ISSUES" tofile="${final.dir}/ISSUES"/>

<copy file="${top.dir}/CHANGES" tofile="${final.dir}/CHANGES"/>

<copy file="${top.dir}/COMPILE" tofile="${final.dir}/COMPILE"/>

<copy file="${top.dir}/CONTRIBUTORS"

tofile="${final.dir}/CONTRIBUTORS"/>

<copy file="${top.dir}/README" tofile="${final.dir}/README"/>

<copy file="${top.dir}/STYLE" tofile="${final.dir}/STYLE"/>

<copy file="${top.dir}/TODO" tofile="${final.dir}/TODO"/>

<copy file="${top.dir}/${final.name}.jar" tofile="${final.dir}/${final.name}.jar"/>

</target>

<!-- package-zip target. Packages the distribution with ZIP -->

<target name="package-zip" depends="package"

description="Packages the distribution as a zip file.">

<zip zipfile="${top.dir}/${final.name}.zip" basedir="${top.dir}/"

includes="**/${final.name}/**" excludes="**/.cvsignore"/>

</target>

<!-- Packages the distribution with TAR-GZIP -->

<target name="package-tgz" depends="package"

description="Packages the distribution as a gzipped tar file.">

<tar tarfile="${top.dir}/${final.name}.tar"

basedir="${top.dir}" excludes="**/**">

<tarfileset dir="${final.dir}/..">

<include name="${final.name}/**"/>

<exclude name="**/.cvsignore"/>

</tarfileset>

</tar>

<gzip zipfile="${top.dir}/${project}-${version}.tar.gz" src="${top.dir}/${project}-${version}.tar"/>

</target>

<!-- Packages the distribution with ZIP and TAG-GZIP -->

<target name="package-all" depends="package-zip, package-tgz">

</target>

<!-- Makes an attempt to clean up a little. -->

<target name="clean"

description="Removes generated artifacts from source tree.">

<delete dir="${build.dest}"/>

<delete dir="${javadoc.destdir}"/>

<delete dir="${final.dir}"/>

<delete file="${top.dir}/${final.name}.jar"/>

<delete file="${top.dir}/${final.name}.tar"/>

<delete file="${top.dir}/${final.name}.tar.gz"/>

<delete file="${top.dir}/${final.name}.zip"/>

<delete>

<fileset dir="${top.dir}" includes="velocity.log*"/>

</delete>

</target>

</project>

build.xml文件的编写可参见ant发行版中的使用文档

你也可以自己编写脚本打包,使用jdk发行版中的jar命令,例如:

#jar cmf myManifestFile myFile.jar *.class

注意还需要自己编写MANIFEST.MF文件配置包属性。具体可以参见javadoc

当然还可以使用集成开发环境提供的打包工具,如JBuilder提供打包工具,但这样程序的移植性不强,建议不要使用,就使用ant比较好。

ref="http://www.ppackage.com/e/index.html" target="_blank">http://www.ppackage.com/e/index.html

里面1.0-1.8的版本和插件。

英文看不明白的话可以用这个站 直接整站在线翻译,或者使用金山快译。

21CN提供了1.8升级版。可能必须是电脑先装有了1.0以后才能升级的。

可以先在官方网下载个1.0安装,然后再用21CN下载的,就可以升级。不过官方网也有1.8了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7608015.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-07
下一篇 2023-04-07

发表评论

登录后才能评论

评论列表(0条)

保存