Java 使用ANT将Web应用程序目录与可执行jar打包
我正在从事一个开源项目,该项目使用ANT,它可以执行各种有用的目标。 其中一个在同一目录中生成一个可执行jar和一个Java 使用ANT将Web应用程序目录与可执行jar打包,java,ant,jetty,embedded-jetty,openrefine,Java,Ant,Jetty,Embedded Jetty,Openrefine,我正在从事一个开源项目,该项目使用ANT,它可以执行各种有用的目标。 其中一个在同一目录中生成一个可执行jar和一个webapp目录。我试着用jar打包webapp目录,有很多信息,但没有一个提供了适合我问题的示例 OpenRefine是一个很棒的数据清理工具,您可以使用一个包含不同启动参数的脚本启动它。 它是使用jetty Web服务器和Web app for UI构建的。 它使用ANT进行部署管理,其中有一个创建Linux工具包的任务: <target name="linux" dep
webapp
目录。我试着用jar打包webapp
目录,有很多信息,但没有一个提供了适合我问题的示例
OpenRefine是一个很棒的数据清理工具,您可以使用一个包含不同启动参数的脚本启动它。
它是使用jetty Web服务器和Web app for UI构建的。
它使用ANT进行部署管理,其中有一个创建Linux工具包的任务:
<target name="linux" depends="jar, prepare_webapp">
<mkdir dir="${linux.dir}"/>
<copy todir="${linux.dir}/server/lib">
<fileset dir="${server.lib.dir}">
<include name="**/*.jar"/>
</fileset>
</copy>
<copy file="${build.dir}/${fullname}-server.jar" tofile="${linux.dir}/server/lib/${fullname}-server.jar"/>
<copy todir="${linux.dir}/webapp">
<fileset dir="${built.webapp.dir}">
<include name="**"/>
</fileset>
</copy>
<mkdir dir="${linux.dir}/licenses"/>
<fixcrlf srcDir="${basedir}/licenses" destDir="${linux.dir}/licenses" eol="lf"/>
<fixcrlf srcDir="${basedir}" destDir="${linux.dir}" eol="lf">
<include name="refine"/>
<include name="refine.ini"/>
<include name="README.txt"/>
<include name="LICENSE.txt"/>
</fixcrlf>
<mkdir dir="${dist.dir}"/>
<tar longfile="gnu" compression="gzip" destfile="${dist.dir}/openrefine-linux-${version}.tar.gz">
<tarfileset dir="${linux.dir}/.." filemode="755">
<include name="${release.name}/refine"/>
</tarfileset>
<tarfileset dir="${linux.dir}/..">
<include name="${release.name}/**"/>
<exclude name="${release.name}/refine"/>
</tarfileset>
</tar>
</target>
此任务创建一个web目录,该目录在上一个任务中使用:
<target name="prepare_webapp" depends="jar_webapp, build">
<mkdir dir="${built.webapp.dir}" />
<copy todir="${built.webapp.dir}">
<fileset dir="${webapp.dir}">
<include name="**/*"/>
<exclude name="WEB-INF/classes/**"/>
<exclude name="WEB-INF/lib-src/**"/>
<exclude name="WEB-INF/lib/icu4j*.jar"/>
</fileset>
</copy>
使用另一个ANT目标准备Jar,如下所示:
<target name="jar_webapp" depends="prepare_jar, build_webapp">
<jar destfile="${build.dir}/${fullname}.jar" basedir="${webapp.classes.dir}"/>
</target>
运行
antlinux
的结果是一个可执行jar和一个webapp目录,是否可以将整个内容打包为一个胖jar 我没有答案,但是你可能想在OpenRefinedev论坛上问这个问题