受够了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"
分享到:
相关推荐
本文主要阐述了maven build是用来干什么的,以及对build标签中各子元素配置的作用
maven-bash-completion, Maven Bash自动完成 Maven Bash完成默认情况下,Maven 不发布Bash自动完成脚本,只使用一个非常简单的指南插件。 这里脚本为你提供了更多帮助你日常 Maven 构建的脚本。演示 安装手动安装...
ant学习指导文档 maven配置 maven常见问题问答 对于初学或想深入了解maven的童鞋以指导
maven-jgit-buildnumber-plugin-1.2.6.jar
maven-jgit-buildnumber-plugin-1.2.6-sources.jar
maven-jgit-buildnumber-plugin-1.2.5-sources.jar
Maven在eclipse中的项目启动命令
不习惯于maven项目开发,想使用eclipse的普通web项目。想借鉴别人的maven项目,但是自己使用的却不熟悉maven的原理等等,但是需要懂一点maven的目录架构。
使用Maven构建多模块项目
maven plugin maven plugin scm 项目管理 构建工具 antmaven plugin maven plugin scm 项目管理 构建工具 ant
空白的,经过单元测试的,mavenWeb项目
还在为找不到jar文件烦心吗,不用了到我空间来有你想要的,持续更新。。。 maven-ant-tasks.jar
自从Java诞生以来,打包,测试,代码检测和发布Java工程就成为困扰Java程序员的枷锁,即使Ant出现,程序员深受困扰,而且Ant的 Xml格式的Build文件的学习阶梯又给程序员加重了一层负担.程序员头顶上的天空依然阴霾,只到有...
Maven2.Ant.Junit合集,pdf和chm格式
使用springmvc、hibernate、maven开发的web实例项目。
NULL 博文链接:https://eileenlml.iteye.com/blog/1544138
maven下通用的ant配置文件,只要0积分。只需修改11行末尾的target/自己的工程名即可。
当时有一些项目(有各自Ant build文件),仅有细微的差别,而JAR文件都由CVS来维护。于是希望有一种标准化的方式构建项目,一个清晰的方式定义项目的组成,一个容易的方式发布项目的信息,以及一种简单的方式在多个...
当时有一些项目(有各自Ant build文件),仅有细微的差别,而JAR文件都由CVS来维护。于是希望有一种标准化的方式构建项目,一个清晰的方式定义项目的组成,一个容易的方式发布项目的信息,以及一种简单的方式在多个...
maven搭建web项目hello world