受够了ant和maven
决定自己写脚本 一边写一边改吧 这个已经可以 编译 和拷贝资源文件了
build了一个29个包 123个java文件 用了3秒
下一步就是打包 发布 上传 版本库等等
#!/bin/bash
## java project builder tools
## create date 2009-04-02
## version 0.0.1
### define the source dir
java_file_sources_dir=src
out_put_dir=bin
lib_directory=lib
###define the JAVA_HOME and PATH CLASSPATH if you needed
#JAVA_HOME=/usr/lib/java/jdk1.6.0_11
#PATH=$JAVA_HOME/bin:$PATH
export LANG=zh_CN.UTF-8
CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:"$out_put_dir/":"$java_file_sources_dir"
for jar in `ls $lib_directory/*.jar`
do
CLASSPATH="$CLASSPATH:""$jar"
done
echo -e '\E[31;48m'"\033[1m **************************** build xmhi backgroud project start **************************** \033[0m"
echo -e '\E[32;48m'"\033[1m JAVA_HOME : \033[0m" $JAVA_HOME
echo -e '\E[32;48m'"\E[1m CLASSPATH : \E[0m" $CLASSPATH
echo -e '\E[32;48m'"\E[1m PATH : \E[0m" $PATH
clear_bin()
{
echo -e '\E[33;48m'"\033[1m start to clear project ...... \033[0m"
if [ -e $out_put_dir ] ; then
rm -rf "$out_put_dir"
mkdir "$out_put_dir"
else
mkdir "$out_put_dir"
fi
}
## compile all the java source in the source dirctory to the output directory you defined
compile_source()
{
# init a array for the all java source folder
declare -a java_source_folder_array
folder_number=0
for java_source_name in ` find $java_file_sources_dir/ -type f -name '*.java' `
do
java_sources_names=${java_source_name%/*.java}
has_it_flag=0
for i in ${#java_source_folder_array[@]}
do
if [ "${java_source_folder_array[$i]}" = "$java_sources_names" ] ; then
has_it_flag=1
elif [ "$java_sources_names" = "$java_file_sources_dir/" ] ; then
has_it_flag=1
fi
done
if [ "$has_it_flag" = 0 ] ; then
let "folder_number+=1"
java_source_folder_array[$folder_number]="$java_sources_names"
fi
#javac -encoding "UTF-8" -d $out_put_dir "$java_sources_names"
done
echo -e '\E[33;48m'"\033[1m start to compile java source ...... \033[0m"
#echo "total source folder number :" "${#java_source_folder_array[@]}"
#echo "total source folders :" "${java_source_folder_array[@]}"
echo "total package number : " "$[folder_number]"
java_source_files=""
for (( a=1 ; a <= $[folder_number] ; a++ ))
do
java_source_files="$java_source_files ""${java_source_folder_array[$a]}""/*.java"
#javac -encoding "UTF-8" -nowarn -d $out_put_dir $java_source_files
done
echo "java source files name : " "$java_source_files"
echo "total java source count :" ` find $java_file_sources_dir/ -name *.java |wc -l `
javac -encoding "UTF-8" -nowarn -d $out_put_dir $java_source_files
echo "total class file count :" ` find $out_put_dir/ -name *.class |wc -l `
}
## copy the resource not include java source
copy_resources_files()
{ echo -e '\E[33;48m'"\033[1m start to copy resource file ...... \033[0m"
for resources_file_name in `find $java_file_sources_dir/ \( -type f -name '**.java*' -o -type d -o -path '*.svn*' \) -o -print`
do
#get the file name not include the resource path name
resource_file_name_nsp=${resources_file_name#"$java_file_sources_dir/"}
echo $resource_file_name_nsp
#copy the resource file to the output directory
cp -fu $resources_file_name "$out_put_dir""/$resource_file_name_nsp"
done
}
start()
{
if [ -z $1 ] ; then
clear_bin
compile_source
copy_resources_files
fi
}
time start
echo -e '\E[31;48m'"\033[1m **************************** build xmhi backgroud project end **************************** \033[0m"
分享到:
相关推荐
总结,ANT-build.xml文件是Ant构建工具的核心,通过XML配置来描述项目构建的整个流程,包括源码编译、资源复制、测试执行、打包发布等步骤。理解并熟练掌握ANT-build.xml的编写,能够极大地提升Java项目的构建效率和...
在实际使用Ant时,我们首先需要在项目根目录下创建`build.xml`文件,并定义所需的任务和目标。例如,一个简单的构建文件可能包含以下内容: ```xml <project name="MyProject" default="build" basedir="."> ...
Ant的构建过程由一系列称为"任务"的模块组成,这些任务通过XML格式的build文件来定义。XML文件中包含了构建步骤的描述,使得项目构建过程可以被清晰地记录和重复执行。 ### 二、Ant的安装 1. **下载**:访问Apache...
Ant广泛应用于Java项目,尤其是与Maven和Gradle等现代构建工具一起使用,以满足不同项目的构建需求。虽然Maven和Gradle现在更流行,但Ant由于其灵活性和自定义性,仍然在许多项目中占有一席之地。 在实际开发中,...
此外,Ant可以与其他工具(如Maven、Gradle)集成,以适应更复杂的项目需求。 总之,Linux版的Apache Ant是Java开发不可或缺的一部分,它简化了构建过程,促进了团队协作,并为自动化工作流提供了强大支持。通过...
Ant使用XML来描述构建过程,包括编译、打包、测试、部署等步骤,使得项目构建过程规范化和可配置化。 一、Ant的基本概念与结构 1. 构建文件:Ant的核心是构建文件(build.xml),它定义了项目的构建规则和任务。...
Ant是Apache软件基金会的一个项目,它遵循XML格式来定义构建文件,这使得构建脚本跨平台兼容,易于理解和维护。 Apache Ant的核心概念是任务(Tasks),这些任务是执行特定构建操作的可重用单元,比如编译源代码、...
它的核心优势在于其高度的可定制性和灵活性,使得开发者能够通过简单的XML配置文件(通常命名为`build.xml`)来实现整个项目的构建流程。 **Ant的特点:** 1. **跨平台性**:由于Ant是基于Java编写的,因此可以在...
Apache Ant是一个开源的Java构建工具,它通过XML格式的构建文件来定义项目构建任务,极大地简化了Java项目的编译、测试和部署工作。本文将深入探讨Ant的使用过程,并结合JAR包的运行,为读者提供一个完整的实践指南...
Apache Ant 是一个广泛使用的Java构建工具,它遵循“软件构建”的概念,允许开发者通过XML配置文件定义任务来自动化构建过程,如编译、打包、测试和部署应用。Apache Ant 1.9.6 是该工具的一个版本,包含了对之前...
在实际开发中,Ant常与其他工具结合使用,如Maven或Gradle,它们各自有各自的优点和适用场景。Ant因其灵活性和强大的定制能力,尤其适合那些对构建过程有特殊需求的项目。不过,对于大部分项目来说,Maven或Gradle的...
在Java开发中,Ant是一个非常重要的构建工具,它基于XML来定义项目构建过程,包括编译、测试、打包等任务。本篇文章将详细介绍如何使用Ant来创建一个可运行的JAR文件,使得我们能够直接通过命令行运行这个JAR。 ...
在Linux中,Ant常与其他Java工具(如Maven和Gradle)一起使用,提供项目构建的灵活性。它支持多种任务,比如Java源码的编译、JAR文件的打包、测试的执行以及部署到服务器等。Ant的XML配置文件(build.xml)是其核心...
使用Apache Ant进行项目构建时,通常会自定义build.xml文件来适应项目的特定需求。例如,你可以定义如下目标: - `compile`:编译源代码。 - `jar`:将编译后的类打包成JAR文件。 - `test`:运行项目中的单元测试。 ...
### ant编译详解 在软件开发领域,自动化构建工具对于提高开发...虽然随着现代构建工具如Maven和Gradle的兴起,Ant的应用场景有所减少,但对于理解构建过程的基础原理以及维护老项目来说,掌握Ant仍然是非常有价值的。
- 执行`ant build`和`ant publish-local`来分别构建和发布模块。 - 对于插件的构建,也可以采用类似的方式: - 进入特定插件的目录,如`xml-input-stream`。 - 执行`ant build`和`ant publish-local`来构建和...
如果项目使用Ant或Maven进行构建,这两个工具都有内置的方式将依赖库和项目一起打包。在Ant中,可以使用`<jar>`任务配合`<fileset>`来包含lib目录下的所有jar;在Maven中,可以使用`maven-assembly-plugin`或`maven...
2. **自动化工具**:常见的构建工具有Maven、Gradle、Ant等,它们提供了强大的自动化功能,能够管理依赖、编译源码、运行测试和打包应用。理解并熟练使用这些工具是构建脚本编写的基础。 3. **版本控制**:子文件名...
对于小型项目,直接使用JAR命令或者Ant可能是最简单快捷的选择;而对于大型项目,采用Maven或Gradle则能够更好地管理和自动化整个构建过程。 选择合适的打包工具不仅能够提高开发效率,还能确保项目的稳定性和可...