ant打包
帆软插件打包
1.仅依赖于FineReport
这种情况比较简单,插件工程按如下方式组合
plugin-name
lib
fr-core-8.0.jar
src
com.fr.pluing.xxxx
build.xml
plugin.xml
把所有finereport提供的jar包放于lib下
编辑build.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <project basedir="." default="jar" name="plugin"> <!-- JDK路径,根据自己机器上实际位置修改--> <property name="jdk.home" value="C:\Program Files\Java\jdk1.8.0_151"/> <property name="libs" value="${basedir}/lib"/> <property name="publicLibs" value=""/> <property name="destLoc" value="."/> <property name="classes" value="classes"/> <xmlproperty file="${basedir}/plugin.xml"/> <property name="current-version" value="${plugin.version}"/> <!-- 插件版本--> <property name="plugin-version" value="${current-version}"/> <!-- 插件名字--> <property name="plugin-name" value="SSOLogin"/> <property name="plugin-jar" value="fr-plugin-${plugin-name}-${plugin-version}.jar"/> <target name="prepare"> <delete dir="${classes}"/> <delete dir="fr-plugin-${plugin-name}-${plugin-version}"/> <xmlproperty file="${basedir}/plugin.xml"/> <delete dir="${destLoc}/${plugin.name}"/> </target> <path id="compile.classpath"> <fileset dir="${libs}"> <include name="**/*.jar"/> </fileset> <fileset dir="${publicLibs}"> <include name="**/*.jar"/> </fileset> </path> <patternset id="resources4Jar"> <exclude name="**/.settings/**"/> <exclude name=".classpath"/> <exclude name=".project"/> <exclude name="**/*.java"/> <exclude name="**/*.db"/> <exclude name="**/*.g"/> <exclude name="**/package.html"/> </patternset> <target name="copy_resources"> <echo message="从${resources_from}拷贝图片,JS,CSS等资源文件"/> <delete dir="tmp"/> <copy todir="tmp"> <fileset dir="${resources_from}\src"> <patternset refid="resources4Jar"/> </fileset> </copy> <copy todir="${classes}"> <fileset dir="tmp"/> </copy> <delete dir="tmp"/> </target> <target name="compile_javas"> <echo message="编译${compile_files}下的Java文件"/> <javac destdir="${classes}" debug="false" optimize="on" source="${source_jdk_version}" target="${target_jdk_version}" fork="true" memoryMaximumSize="512m" listfiles="false" srcdir="${basedir}" executable="${compile_jdk_version}/bin/javac" includeantruntime="on" > <src path="${basedir}/src"/> <exclude name="**/.svn/**"/> <compilerarg line="-encoding UTF8 "/> <classpath refid="compile.classpath"/> </javac> </target> <target name="jar_classes"> <echo message="打Jar包:${jar_name}"/> <delete file="${basedir}/${jar_name}"/> <jar jarfile="${basedir}/${jar_name}"> <fileset dir="${classes}"> </fileset> </jar> </target> <target name="super_jar" depends="prepare"> <antcall target="copy_resources"> <param name="resources_from" value="${basedir}"/> </antcall> <antcall target="compile_javas"> <param name="source_jdk_version" value="1.8"/> <param name="target_jdk_version" value="1.8"/> <param name="compile_jdk_version" value="${jdk.home}"/> <param name="compile_files" value="${basedir}/src"/> </antcall> <echo message="compile plugin success!"/> <antcall target="jar_classes"> <param name="jar_name" value="${plugin-jar}"/> </antcall> <delete dir="${classes}"/> </target> <target name="jar" depends="super_jar"> <antcall target="zip"/> </target> <target name="zip"> <property name="plugin-folder" value="fr-plugin-${plugin-name}-${plugin-version}"/> <echo message="----------zip files----------"/> <mkdir dir="${plugin-folder}"/> <copy todir="${plugin-folder}"> <fileset dir="."> <include name="${plugin-jar}"/> <include name="plugin.xml"/> </fileset> </copy> <zip destfile="${basedir}/${plugin-folder}.zip" basedir="."> <include name="${plugin-folder}/*.jar"/> <include name="${plugin-folder}/plugin.xml"/> </zip> <xmlproperty file="${basedir}/plugin.xml"/> <move file="${plugin-folder}.zip" todir="${destLoc}/${plugin.name}"/> </target> </project>
其中第4行的jdk.home和第17行的plugin-name是需要根据实际情况自己改变的
2.依赖于其他第三方jar包
插件工程的结构,需要把报表相关的jar包都放置到lib/report下,而依赖的第三方jar包则直接放lib下即可
plugin-name
lib
report
fr-core-8.0.jar
other.jar
src
com.fr.pluing.xxxx
build.xml
plugin.xml
编辑build.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <project basedir="." default="jar" name="plugin"> <!-- JDK路径,根据自己机器上实际位置修改--> <property name="jdk.home" value="C:\Program Files\Java\jdk1.8.0_151"/> <property name="libs" value="${basedir}/lib"/> <property name="publicLibs" value=""/> <property name="reportLibs" value="${basedir}/lib/report"/> <property name="destLoc" value="."/> <property name="classes" value="classes"/> <xmlproperty file="${basedir}/plugin.xml"/> <property name="current-version" value="${plugin.version}"/> <!-- 插件版本--> <property name="plugin-version" value="${current-version}"/> <!-- 插件名字--> <property name="plugin-name" value="TokenLogin"/> <property name="plugin-jar" value="fr-plugin-${plugin-name}-${plugin-version}.jar"/> <target name="prepare"> <delete dir="${classes}"/> <delete dir="fr-plugin-${plugin-name}-${plugin-version}"/> <xmlproperty file="${basedir}/plugin.xml"/> <delete dir="${destLoc}/${plugin.name}"/> </target> <path id="compile.classpath"> <fileset dir="${libs}"> <include name="**/*.jar"/> </fileset> <fileset dir="${publicLibs}"> <include name="**/*.jar"/> </fileset> <fileset dir="${reportLibs}"> <include name="**/*.jar"/> </fileset> </path> <patternset id="resources4Jar"> <exclude name="**/.settings/**"/> <exclude name=".classpath"/> <exclude name=".project"/> <exclude name="**/*.java"/> <exclude name="**/*.db"/> <exclude name="**/*.g"/> <exclude name="**/package.html"/> </patternset> <target name="copy_resources"> <echo message="从${resources_from}拷贝图片,JS,CSS等资源文件"/> <delete dir="tmp"/> <copy todir="tmp"> <fileset dir="${resources_from}\src"> <patternset refid="resources4Jar"/> </fileset> </copy> <copy todir="${classes}"> <fileset dir="tmp"/> </copy> <delete dir="tmp"/> </target> <target name="compile_javas"> <echo message="编译${compile_files}下的Java文件"/> <javac destdir="${classes}" debug="false" optimize="on" source="${source_jdk_version}" target="${target_jdk_version}" fork="true" memoryMaximumSize="512m" listfiles="false" srcdir="${basedir}" executable="${compile_jdk_version}/bin/javac" includeantruntime="on" > <src path="${basedir}/src"/> <exclude name="**/.svn/**"/> <compilerarg line="-encoding UTF8 "/> <classpath refid="compile.classpath"/> </javac> </target> <target name="jar_classes"> <echo message="打Jar包:${jar_name}"/> <delete file="${basedir}/${jar_name}"/> <jar jarfile="${basedir}/${jar_name}"> <fileset dir="${classes}"> </fileset> </jar> </target> <target name="super_jar" depends="prepare"> <antcall target="copy_resources"> <param name="resources_from" value="${basedir}"/> </antcall> <antcall target="compile_javas"> <param name="source_jdk_version" value="1.8"/> <param name="target_jdk_version" value="1.8"/> <param name="compile_jdk_version" value="${jdk.home}"/> <param name="compile_files" value="${basedir}/src"/> </antcall> <echo message="compile plugin success!"/> <antcall target="jar_classes"> <param name="jar_name" value="${plugin-jar}"/> </antcall> <delete dir="${classes}"/> </target> <target name="jar" depends="super_jar"> <antcall target="zip"/> </target> <target name="zip"> <property name="plugin-folder" value="fr-plugin-${plugin-name}-${plugin-version}"/> <echo message="----------zip files----------"/> <mkdir dir="${plugin-folder}"/> <copy todir="${plugin-folder}"> <fileset dir="."> <include name="${plugin-jar}"/> <include name="plugin.xml"/> </fileset> <fileset dir="${libs}"> <include name="*.jar"/> <include name="*.dll"/> </fileset> </copy> <zip destfile="${basedir}/${plugin-folder}.zip" basedir="."> <include name="${plugin-folder}/*.jar"/> <include name="${plugin-folder}/*.dll"/> <include name="${plugin-folder}/plugin.xml"/> </zip> <move file="${plugin-folder}.zip" todir="${destLoc}/${plugin.name}"/> </target> </project>
进入插件目录,执行打包命令
ant -f build.xml jar