ant 指定生成部署文件包

因为用到ant调用maven的场景,因此需要加入jar包 maven-ant-tasks-2.1.3.jar 随意位置,待会会在配置写标

build.properties文件配置:

#SET ENVIRONMENT PATH
#maven本地仓库地址、ant_home、maven_home
M2_REPO=D:/Installed Develop/m2/Repository
ANT_HOME=D:/Installed Develop/apache-ant-1.9.4
MAVEN_HOME=D:/Installed Develop/apache-maven-3.2.2
#maven-ant-tasks-2.1.3.jar位置,很明显这里用了相对路径即项目根路径antlibs下
ANT_TASK_JAR=antlibs

build.xml ant执行脚本:

<?xml version="1.0" encoding="UTF-8"?>
<project name="cloudapi-mobile" default="untar_file" basedir="." xmlns:artifact="antlib:org.apache.maven.artifact.ant">
    <!--定义外部属性文件和目录-->
    <property file="build.properties" />
    <property name="deploy_dir" value="clouadpi-mobile deploy" />

    <!--输出配置信息-->
    <target name="show_property" description="show build.properties conf">
        <echo> ================== build.properties ================ </echo>
        <echo>PROJECT_NAME=${ant.project.name}</echo>
        <echo>M2_REPO=${M2_REPO}</echo>
        <echo>ANT_HOME=${ANT_HOME}</echo>
        <echo>MAVEN_HOME=${MAVEN_HOME}</echo>
        <echo>ANT_TASK_JAR=${ANT_TASK_JAR}</echo>
    </target>

    <!-- Ant调用Maven-->
    <target name="init_mvn" description="init mvn">
        <path id="maven-ant-tasks.classpath" path="${ANT_TASK_JAR}/maven-ant-tasks-2.1.3.jar" />
        <typedef resource="org/apache/maven/artifact/ant/antlib.xml" uri="antlib:org.apache.maven.artifact.ant" classpathref="maven-ant-tasks.classpath" />
        <echo>init mvn finished..</echo>
    </target>

    <!--调用maven的defalut生命周期的clean阶段-->
    <target name="clean" description="mvn clean" depends="init_mvn">
        <artifact:mvn mavenHome="${MAVEN_HOME}" fork="true">
            <arg line="clean" />
        </artifact:mvn>
        <echo>mvn clean finished..</echo>
    </target>

    <!-- 调用maven的defalut生命周期的package阶段 -->
    <target name="package" description="mvn package" depends="init_mvn, clean">
        <artifact:mvn mavenHome="${MAVEN_HOME}" fork="true">
            <arg line="package -Dmaven.test.skip=true -Pproduction" />
        </artifact:mvn>
        <echo>mvn package finished..</echo>
    </target>

    <!--调用maven的defalut生命周期的install阶段-->
    <target name="install" description="mvn install" depends="init_mvn, clean">
        <artifact:mvn mavenHome="${MAVEN_HOME}" fork="true">
            <arg line="install -Dmaven.test.skip=true -Pproduction" />
        </artifact:mvn>
        <echo>mvn install finished..</echo>
    </target>

    <!-- 打印maven项目信息 -->
    <target name="show_project" description="show project" depends="install">
        <taskdef resource="net/sf/antcontrib/antlib.xml" />
        <!-- 引入父pom文件,读取pom文件的属性 -->
        <artifact:pom id="projectPom" file="pom.xml" />
        <echo>The project name is ${projectPom.name}</echo>
        <echo>The project version is ${projectPom.version}</echo>
        <echo>The build directory is ${projectPom.build.directory}</echo>
        <mkdir dir="${deploy_dir}" />
    </target>

    <!-- 删除上次文件 -->
    <target name="dele_deploy_dir" description="del deploy dir">
        <delete dir="${deploy_dir}"/>
    </target>

    <!-- 根据列表打包文件 -->
    <target name="tar_file" description="tar file" depends="dele_deploy_dir,show_project">
        <echo>tar file to deploy</echo>
        <tar basedir="${projectPom.build.directory}/${projectPom.name}-${projectPom.version}/" destfile="${deploy_dir}/deploylist.jar" includesfile="deploylist.txt" />
    </target>

    <!-- 解压压缩包 -->
    <target name="untar_file" description="untar file" depends="tar_file">
        <echo>untar file to deploy</echo>
        <untar src="${deploy_dir}/deploylist.jar" dest="${deploy_dir}"/>
    </target>

</project>

另外,因为打包的时候需要通过自定义文件过滤,即脚本里的deploylist.txt 下为内容

WEB-INF/**/FeedAct.class
WEB-INF/**/convertServer.properties
WEB-INF/**/cloudapi-common_mobile_only-0.2-SNAPSHOT.jar

生成文件如下

时间: 2024-10-15 01:49:34

ant 指定生成部署文件包的相关文章

maven指定本地的文件包

案例: <!-- CKFinder begin --> <dependency> <groupId>net.coobird</groupId> <artifactId>thumbnailator</artifactId> <version>0.4.2</version> <scope>system</scope> <systemPath>${project.basedir}/

maven intall在target文件夹中自动生成的war包部署服务器时缺斤少两

1.问题描述,本地改动特别大或者升级系统操作,打war包部署服务器上程序时候,页面或者后台总是报错,原因就是比本地少东西. 2.问题排查解决:maven clean然后maven intall在target文件夹中生成一个war包: 编译之后,target目录层级下自动生成的war包,执行 maven install命令的时候自动生成,但是将war包部署到服务器上,总是提示少页面或者模块,一系列排查依旧少东西,页面和后台的控制台报错等等,页面访问不了页面找不到错误等,一系列排查错误无果,尝试性的

如何打包/运行jar包,及生成exe文件

关于如何打包/运行jar包,以及生成exe文件.之前各种查询.博客,终于搞明白究竟是咋回事.记得还做过笔记的.今天要打包生成exe用的时候,居然忘了咋怎来着.去查看之前的笔记,死活没找到(好像被删掉了).决定写下来,以便之后随时调用. 一.jar包 什么是jar包?jar包即(Java Archive File),也就是java归档文件.JAR 文件与 ZIP 文件唯一的区别就是在 JAR 文件的内容中,包含了一个 META-INF/MANIFEST.MF 文件,这个文件是在生成 JAR 文件的

【JAVA】使用Eclipse依赖生成jar包时,避免最外层同时生成资源文件的配置。

使用Eclipse依赖生成jar包时,如果做配置,生成的jar包文件会全部生成在外面,这并不是我们需要的,下面我们一起来修改下配置,使生成的jar包符合我们的需求吧. 1.如果不做任何配置生成的jar包如下. 这样最原始的生成方式并不是我们想要的,我们想要的是test.properties和ums.properties文件同时放到message文件夹里面,下面修改一下Eclipse配置. 2.修改Eclipse配置,使test.properties和ums.properties文件同时放到mes

itms-services协议:跳转网页部署及PHP动态生成 iOS渠道包IPA一键安装之plist

相信很多人尝试过使用揣果测试库(http://ipa.chuaiguo.com/)的无线安装测试IPA安装包功能.有心人一定注意到其itms-services协议的一键安装地址的url=部分并不是我们常见的plist文件路径,而是一个install.php通过增加参数的形式自动生成输出了plist.之前因为笔者的项目中渠道包不多,所以懒得去写这样一个文件帮助部署,可是最近,笔者的项目的渠道包不断增多了,显然部署多个plist文件管理上似乎越来越麻烦了,于是笔者开始仿照揣果实现了并结合自己项目的需

Android利用ant自动编译、修改配置文件、批量多渠道,打包生成apk文件

原创文章,转载请注明:http://www.cnblogs.com/ycxyyzw/p/4535459.html android 程序打包成apk,如果在是命令行方式,一般都要经过如下步骤: 1.用aapt命令生成R.java文件 2.用aidl命令生成相应java文件 3.用javac命令编译java源文件生成class文件 4.用dx.bat将class文件转换成classes.dex文件 5.用aapt命令生成资源包文件resources.ap_ 6.用apkbuilder.bat打包资源

Linux技巧——用dd生成指定大小的文件

我们在测试或调试的时候,有时候会需要生成某个size的文件,比如在测试存储系统时,需要将磁盘剩余空间减少5G,最简单的办法就是拷贝一个5G的文件过来,但是从哪儿去弄这样大小的文件呢,或许你想到随便找一个文件,不停的拷贝,最后合并,这也不失为一种办法,但是有了dd,你会更容易且更灵活的实现 我们来case by case的介绍dd的用法.先看第一个 生成一个大小为5G的文件,内容不做要求 命令如下 $ dd if=/dev/zero of=tmp.5G bs=1G count=5 解释一下这里用到

python处理文本文件,生成指定格式的文件

import os import sys import string #以指定模式打开指定文件,获取文件句柄 def getFileIns(filePath,model): print("打开文件") print(filePath) print(model) return open(filePath,model) #获取需要处理的文件 def getProcFile(path): return os.listdir(path) #判断是否满足某个条件,如果满足则执行 def isTru

【spring boot logback】日志logback 生成日志文件在本项目下,而不在指定的日志文件目录下/指定日志文件到达最大值后不按照配置进行切割

原本的日志文件配置如下: <?xml version="1.0" encoding="UTF-8"?> <configuration scan="true" scanPeriod="60 seconds" debug="false"> <contextName>logback</contextName> <!--定义日志文件的存储地址 勿在 LogBac