zoukankan      html  css  js  c++  java
  • Ant 体验笔记

    项目结构如图所示:这是个《gradle实战》里的的demo

    一般用ant打jar的时候不用指定程序的入口!这个jar一般是给其他app引用的。但是如果该jar就是程序的启动jar。例如:java -jar abc.jar  

     这个时候需要指定jar的入口类!也就是指定用哪个类的main方法为入口!否则会报错!所以我修改了build.xml。参考连接https://www.iteye.com/blog/pengyan5945-1562387

    build.xml如下:

    <project name="my-app" default="dist" basedir=".">
        <!-- set global properties for this build -->
        <property name="src" location="src"/>
        <property name="build" location="build"/>
        <property name="dist" location="dist"/>
        <property name="version" value="1.0"/>
    
        <target name="init">
            <!-- Create the build directory structure used by compile -->
            <mkdir dir="${build}"/>
        </target>
    
        <target name="compile" depends="init" description="compile the source">
            <!-- Compile the java code from ${src} into ${build} -->
            <javac srcdir="${src}" destdir="${build}" classpath="lib/commons-lang3-3.1.jar" includeantruntime="false"/>
        </target>
    
        <target name="dist" depends="compile" description="generate the distribution">
            <!-- Create the distribution directory -->
            <mkdir dir="${dist}"/>
    
            <!-- Put everything in ${build} into the MyProject-${DSTAMP}.jar file -->
            <jar jarfile="${dist}/my-app-${version}.jar" basedir="${build}">
                <!--下面两行我加上的,用来运行jar,当然也可以不用Class-Path,而是在java运行是添加 -Djava.ext.dirs=../lib-->
                <manifest>
                    <attribute name="Main-Class" value="com.mycompany.app.MainAnt"/>
                    <attribute name="Class-Path" value="../lib/commons-lang3-3.1.jar"/>
                </manifest>
            </jar>
        </target>
    
        <target name="clean" description="clean up">
            <!-- Delete the ${build} and ${dist} directory trees -->
            <delete dir="${build}"/>
            <delete dir="${dist}"/>
        </target>
    </project>
    package com.mycompany.app;
    
    import org.apache.commons.lang3.StringUtils;
    
    public class MainAnt {
        public static void main(String[] args) {
            System.out.println(StringUtils.capitalize("hello"));
        }
    }

    运行dist任务后,目录如下

    测试结果:

    bogon:dist lakeslove$ java -jar my-app-1.0.jar
    Hello

    当然也可以:

    bogon:dist lakeslove$ java -jar -Djava.ext.dirs=../lib my-app-1.0.jar
    Hello

    如果不用ant,怎么编译运行引用jar包的java文件呢?

    bogon:java lakeslove$ javac -Djava.ext.dirs=../../../lib com/mycompany/app/MainAnt.java

    bogon:build lakeslove$ java -Djava.ext.dirs=../lib com/mycompany/app/MainAnt
    Hello

    详细解释:-D<name>=<value>           

       set a system property(设置一个系统属性),而java.ext.dirs这个系统属性代表的含义就是Path of extension directory or directories(扩展目录路径 )

    参考https://www.cnblogs.com/crhdyl/p/5523603.html

  • 相关阅读:
    Python操作Excel
    JMeter生成UUID方式
    JMeter之Beanshell用法
    JMeter后置处理器
    JMeter后置处理器
    Python之正则匹配 re库
    read(),readline() 和 readlines() 比较
    Python的位置参数、默认参数、关键字参数、可变参数之间的区别
    调查管理系统 -(6)自定义Struts2的拦截器&自定义UserAware接口&Action中模型赋值问题&Hibernate懒加载问题
    调查管理系统 -(5)Struts2配置&用户注册/登录/校验
  • 原文地址:https://www.cnblogs.com/lakeslove/p/12934066.html
Copyright © 2011-2022 走看看