forked from GSGSS/ibas.receipts
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcompile_packages.sh
executable file
·72 lines (66 loc) · 2.78 KB
/
compile_packages.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#!/bin/bash
echo '****************************************************************************'
echo ' compile_packages.sh '
echo ' by niuren.zhu '
echo ' 2016.06.17 '
echo ' 说明: '
echo ' 1. 安装apache-maven,sudo apt-get install maven '
echo ' 2. 解压apache-maven,并设置系统变量MAVEN_HOME为解压的程序目录。 '
echo ' 3. 添加PATH变量到MAVEN_HOME\bin,并检查JAVE_HOME配置是否正确。 '
echo ' 4. 运行提示符运行mvn -v 检查安装是否成功。 '
echo ' 5. 此脚本会遍历当前目录的子目录,查找pom.xml并编译jar包到release目录。 '
echo ' 6. 可在compile_order.txt文件中调整编译顺序。 '
echo '****************************************************************************'
# 设置参数变量
WORK_FOLDER=`pwd`
OPNAME=`date '+%Y%m%d_%H%M%S'`
LOGFILE=${WORK_FOLDER}/compile_packages_log_${OPNAME}.txt
echo --当前工作的目录是[${WORK_FOLDER}]
echo --检查编译顺序文件[compile_order.txt]
if [ ! -e ${WORK_FOLDER}/compile_order.txt ]
then
ls -l | awk '/^d/{print $NF}' > ${WORK_FOLDER}/compile_order.txt
fi
echo --清除项目缓存
if [ -e ${WORK_FOLDER}/release/ ]
then
rm -rf ${WORK_FOLDER}/release/
fi
mkdir -p ${WORK_FOLDER}/release/
if [ -e ${WORK_FOLDER}/pom.xml ]
then
mvn clean install -f ${WORK_FOLDER}/pom.xml >>$LOGFILE
fi
echo --开始编译[compile_order.txt]内容
while read line
do
if [ -e ${WORK_FOLDER}/${line}/pom.xml ]
then
if [[ ${line} = *.service ]]
then
# 网站,编译war包
echo --开始编译[${line}]
mvn clean package -Dmaven.test.skip=true -f ${WORK_FOLDER}/${line}/pom.xml >>$LOGFILE
if [ -e ${WORK_FOLDER}/${line}/target/*.war ]
then
cp -r ${WORK_FOLDER}/${line}/target/*.war ${WORK_FOLDER}/release >>$LOGFILE
fi
else
# 非网站,编译jar包并安装到本地
echo --开始编译[${line}]+安装
mvn clean package install -Dmaven.test.skip=true -f ${WORK_FOLDER}/${line}/pom.xml >>$LOGFILE
if [ -e ${WORK_FOLDER}/${line}/target/*.jar ]
then
cp -r ${WORK_FOLDER}/${line}/target/*.jar ${WORK_FOLDER}/release >>$LOGFILE
fi
fi
# 检查编译结果
if [ -e ${WORK_FOLDER}/release/${line}*.* ]
then
echo --编译[${line}]成功
else
echo --编译[${line}]失败
fi
fi
done < ${WORK_FOLDER}/compile_order.txt | sed 's/\r//g'
echo --编译完成,更多信息请查看[compile_packages_log_${OPNAME}.txt]