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>
View Code

其中第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>
View Code

 

进入插件目录,执行打包命令

ant -f build.xml jar

 

posted @ 2019-02-20 09:31  慕尘  阅读(411)  评论(0编辑  收藏  举报