The following is frequently used ant script, compile some java source codes with a libary path, then copy all non-java files to compiled folder:

<property name="src.dir" value="${basedir}/src" />

<property name="src.class.dir" value="${webroot.dir}/web-inf/classes" />

<path id="lib.path">

    <fileset dir="${webroot.dir}/web-inf/lib">

        <include name="**/*.jar" />

    </fileset>

</path>

<target name="compile-src" depends="init" description="compile java sources">

    <javac srcdir="${src.dir}" destdir="${src.class.dir}" encoding="utf-8"

            debug="true" classpathref="lib.path" failonerror="false"/>

    <copy todir="${src.class.dir}">

        <fileset dir="${src.dir}">

            <exclude name="**/*.java" />

        </fileset>

    </copy>

</target>

The corresponding shell script is:

src_dir=/vagrant/codes/GCP6.1/src

web_build=/vagrant/codes/web_build

class_dir=$web_build/web_server/webapps/GCP6.1/WEB-INF/classes

lib_dir=/vagrant/codes/GCP6.1/WebRoot/WEB-INF/lib

find $src_dir -type f -name "*.java" -exec javac -cp "$lib_dir/*:$src_dir" -d $class_dir {} \;

rsync -auC --exclude='*.java' $src_dir/ $class_dir/

Take care there's no folder named "core" in $src_dir, or it will be excluded by the "-C" option of rsync command.

A Test Case

$ tree

.

├── classes

├── lib

│   ├── libadd.jar

│   └── libmul.jar

├── libadd

│   └── com

│       └── boco

│           └── gcp

│               └── add

│                   ├── MyAdd.class

│                   └── MyAdd.java

├── libmul

│   └── com

│       └── boco

│           └── gcp

│               └── mul

│                   ├── MyMul.class

│                   └── MyMul.java

└── main

    └── com

        └── boco

            └── gcp

                ├── Test.java

                └── util

                    └── MyUtil.java

17 directories, 8 files

$ find . -name '*.java' -exec cat {} \; -exec echo "--------" \;

package com.boco.gcp.util;

import com.boco.gcp.add.MyAdd;

import com.boco.gcp.mul.MyMul;

public class MyUtil {

    public int newadd(int x, int y) {

        MyAdd add = new MyAdd();

        MyMul mul = new MyMul();

        return add.myadd(3,5) + mul.mymul(3,5);

    }

}

--------

package com.boco.gcp;

import com.boco.gcp.mul.MyMul;

import com.boco.gcp.add.MyAdd;

import com.boco.gcp.util.MyUtil;

public class Test {

    public static void main(String[] args) {

        MyMul mul = new MyMul();

        MyAdd add = new MyAdd();

        System.out.println(mul.mymul(3,5));

        System.out.println(add.myadd(3,5));

        MyUtil util = new MyUtil();

        System.out.println(util.newadd(3,5));

    }

}

--------

package com.boco.gcp.mul;

public class MyMul {

    public int mymul(int x, int y) {

        return 10*x*y;

    }

    public static void main(String[] args) {

        MyMul mul = new MyMul();

        System.out.println(mul.mymul(3,5));

    }

}

--------

package com.boco.gcp.add;

public class MyAdd {

    public int myadd(int x, int y){

        return 10*x+y;

    }

    public static void main(String[] args) {

        MyAdd add = new MyAdd();

        System.out.println(add.myadd(3,5));

    }

}

--------

$ find main -name '*.java' -exec javac -cp 'lib/*:main' {} -d classes \;

$ tree classes/

classes/

└── com

    └── boco

        └── gcp

            ├── Test.class

            └── util

                └── MyUtil.class

最新文章

  1. ViewHolder优化2&gt;:
  2. 程序日志输出实现-Log4j
  3. 使用Html5+C#+微信 开发移动端游戏详细教程 总目录
  4. Unity 协程与线程
  5. 在Windows Live Writer中插入C# code
  6. 转】使用log4jdbc记录SQL信息
  7. 读书笔记-详解C程序开发中 .c和.h文件的区别
  8. [luogu P3801] 红色的幻想乡 [线段树][树状数组]
  9. Java基础精选,你答对了几道?
  10. Hex to Int 【十六进制转十进制】
  11. mysql--二进制日志(bin-log)三种格式介绍及分析
  12. 笔记:Eclipse 安装 Hibernate Tools
  13. JPushDemo【极光推送集成,基于v3.1.8版本】
  14. tqdm的使用方法
  15. 【HNOI2018】毒瘤
  16. go相关知识点
  17. MT【186】四边形中的余弦定理
  18. Sharepoint2013 列表的NewForm 页面添加一个 保存新建 按钮
  19. Java String 中的一些函数与正则的结合使用
  20. CentOS7搭建elasticsearch集群

热门文章

  1. Spring:Spring优势——分层架构简介
  2. Python 绘制词云
  3. Python使用笔记005-文件操作(二)
  4. Pandas高级教程之:稀疏数据结构
  5. Java基础00-修饰符18
  6. Java基础00-分支语句6
  7. SpringBoot配置Https
  8. 【LeetCode】242. 有效的字母异位词
  9. 【技巧】使用PPT更换背景色
  10. Leetcode:169. 多数元素