Java Web 项目打包脚本

可用于 (但不限于) Eclipse 项目。

一次性生成:
1. Java doc .zip 包;
2. Java 源代码 .zip 包;
3. Java 二进制文件 .jar 包;
4. Java 源代码加二进制 .jar 包;
5. 包含 Java 源代码的 .war 包。

依赖:能在 PATH 中找到 jar 、javadoc 。

因项目和个人习惯不同,脚本可能需要修改才能适应实际情况。
​1. [代码]某次打包的效果     

[typhoon@TFW-CENT6-LT jweb.tfw.tfw_web_lpm]$ ll export.v0.2.5_2013-03-10_20-40.jre150
总用量 984
-rw-rw-r--. 1 typhoon typhoon   2378  3月 10 2013 export.bat
-rw-rw-r--. 1 typhoon typhoon   2332  3月 10 2013 export.sh
lrwxrwxrwx. 1 typhoon typhoon     50  3月 10 2013 tfw-web-lpm.aij.jar -> tfw-web-lpm.v0.2.5_2013-03-10_20-40.jre150.aij.jar
lrwxrwxrwx. 1 typhoon typhoon     50  3月 10 2013 tfw-web-lpm.aij.war -> tfw-web-lpm.v0.2.5_2013-03-10_20-40.jre150.aij.war
lrwxrwxrwx. 1 typhoon typhoon     50  3月 10 2013 tfw-web-lpm.doc.zip -> tfw-web-lpm.v0.2.5_2013-03-10_20-40.jre150.doc.zip
lrwxrwxrwx. 1 typhoon typhoon     52  3月 10 2013 tfw-web-lpm.pages.zip -> tfw-web-lpm.v0.2.5_2013-03-10_20-40.jre150.pages.zip
lrwxrwxrwx. 1 typhoon typhoon     50  3月 10 2013 tfw-web-lpm.raw.jar -> tfw-web-lpm.v0.2.5_2013-03-10_20-40.jre150.raw.jar
lrwxrwxrwx. 1 typhoon typhoon     50  3月 10 2013 tfw-web-lpm.src.zip -> tfw-web-lpm.v0.2.5_2013-03-10_20-40.jre150.src.zip
-rw-rw-r--. 1 typhoon typhoon 116702  3月 10 2013 tfw-web-lpm.v0.2.5_2013-03-10_20-40.jre150.aij.jar
-rw-rw-r--. 1 typhoon typhoon 524597  3月 10 2013 tfw-web-lpm.v0.2.5_2013-03-10_20-40.jre150.aij.war
-rw-rw-r--. 1 typhoon typhoon 113918  3月 10 2013 tfw-web-lpm.v0.2.5_2013-03-10_20-40.jre150.doc.zip
-rw-rw-r--. 1 typhoon typhoon  80119  3月 10 2013 tfw-web-lpm.v0.2.5_2013-03-10_20-40.jre150.pages.zip
-rw-rw-r--. 1 typhoon typhoon  72633  3月 10 2013 tfw-web-lpm.v0.2.5_2013-03-10_20-40.jre150.raw.jar
-rw-rw-r--. 1 typhoon typhoon  53374  3月 10 2013 tfw-web-lpm.v0.2.5_2013-03-10_20-40.jre150.src.zip
[typhoon@TFW-CENT6-LT jweb.tfw.tfw_web_lpm]$
2. [代码]export.sh   
#Project define.
#========================================
export NAME=tfw-web-lpm
export VERSION=v0.2.6_2013-10-13_14-20+7+.jre150
export WAR_NAME=tfw-web-lpm
export LANG=en
 
#Variable define.
#========================================
export PROJ=$(pwd)
export SRC=$PROJ/WEB-INF/src
export JDOC=$PROJ/doc/java_doc
export CLASSPATH=$CLASSPATH:$PROJ/WEB-INF/lib/tfw-base.aij.jar
export CLASSPATH=$CLASSPATH:$PROJ/WEB-INF/lib/tfw-web-base.aij.jar
export CLASSPATH=$CLASSPATH:$CATALINA_HOME/lib/servlet-api.jar
export BIN=$PROJ/WEB-INF/classes
export PAGES=tfw/lpm
export OUT=$PROJ/export.$VERSION
export TMP=$OUT/tmp
 
# Cleaning.
#========================================
rm -Rf $OUT
mkdir -p $OUT
 
# Generating java doc.
#========================================
rm -Rf $JDOC
cd $SRC
#javadoc -author -private -subpackages * -d $JDOC/$LANG
javadoc -private -subpackages * -d $JDOC/$LANG
cd $OUT
 
# Packing.
#========================================
cd $SRC
jar Mcvf $OUT/$NAME.$VERSION.src.zip *
cd $JDOC
jar Mcvf $OUT/$NAME.$VERSION.doc.zip *
cd $BIN
jar Mcvf $OUT/$NAME.$VERSION.raw.jar *
cd $PROJ
jar Mcvf $OUT/$NAME.$VERSION.pages.zip $PAGES
mkdir -p $TMP
cd $TMP
jar xvf $OUT/$NAME.$VERSION.raw.jar
jar xvf $OUT/$NAME.$VERSION.src.zip
jar Mcvf $OUT/$NAME.$VERSION.aij.jar tfw
cd $OUT婚纱摄影
rm -Rf $TMP
 
#Linking for advanced packing.
#========================================
cd $OUThttp://www.huiyi8.com/hunsha/​
ln -s $NAME.$VERSION.src.zip $NAME.src.zip
ln -s $NAME.$VERSION.doc.zip $NAME.doc.zip
ln -s $NAME.$VERSION.raw.jar $NAME.raw.jar
ln -s $NAME.$VERSION.pages.zip $NAME.pages.zip
 
#Advanced packing.
#========================================
mkdir -p $TMP/$PAGES
cp -Rf $PROJ/export.sh $TMP/$WAR_NAME.$VERSION.export.sh
cp -Rf $PROJ/export.bat $TMP/$WAR_NAME.$VERSION.export.bat
cp -Rf $PROJ/$PAGES/* $TMP/$PAGES
 
mkdir -p $TMP/WEB-INF/lib
cp -Rf $OUT/$NAME*.aij.jar $TMP/WEB-INF/lib
cp -Rf $PROJ/WEB-INF/lib/tfw-base.v*.jar $TMP/WEB-INF/lib
cp -Rf $PROJ/WEB-INF/lib/tfw-web-base.v*.jar $TMP/WEB-INF/lib
 
mkdir -p $TMP/WEB-INF/data/tfw
cp -Rf $PROJ/WEB-INF/data/tfw/lpm $TMP/WEB-INF/data/tfw
 
cd $TMP
jar Mcvf $OUT/$WAR_NAME.$VERSION.aij.war *
cd $OUT
ln -s $WAR_NAME.$VERSION.aij.war $WAR_NAME.aij.war
rm -Rf $TMP
ln -s $NAME.$VERSION.aij.jar $NAME.aij.jar
 
#Tailing.
#========================================
cd $PROJ
cp export.sh $OUT
cp export.bat $OUT

原文地址:https://www.cnblogs.com/xkzy/p/3916525.html