可用于 (但不限于) 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

Java Web 项目打包脚本的更多相关文章

  1. idea创建的java web项目打包发布到tomcat

    File-> Project Structure... 点击Artifacts->+号 点击Web Application:Archive->选择与你的项目对应的那一项Artifac ...

  2. java web 项目打包(war 包)并部署

    1.在eclipse中右键单击项目,然后Export选择WAR file,生成项目的WAR文件.具体步骤请看图片详细操作步骤: 2.把生成的WAR文件放到tomcat解压之后的webapps文件夹下. ...

  3. Eclipse上进行java web项目的打包

    以下是一个基于maven搭建的Spring Boot项目的目录结构 版权声明:本文为博主原创文章,未经博主允许不得转载. 原文地址: https://www.cnblogs.com/poterliu/ ...

  4. java web项目部署到云服务器

    第一步把java web项目打包 成war包 第二步:在Build选里选择build Artfacts->water:war->Build war包建立完毕. 第三步:在官网下载winsc ...

  5. 使用IntelliJ IDEA和Maven构建Java web项目并打包部署

    爱编程爱分享,原创文章,转载请注明出处,谢谢! http://www.cnblogs.com/fozero/p/6120375.html 一.背景 现在越来越多的人使用IntelliJ IDEA工具进 ...

  6. 关于Maven打包Java Web项目以及热部署插件Jrebel的使用

    Java Web/Eclipse/Maven/Tomcat 最近有个新项目是java web项目,记录一下,可能比较乱.虽然没接触过Java,但是eclipse还是用过的 初识项目 同事说,项目是ma ...

  7. SpringMVC内容略多 有用 熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器、过滤器等Web组件以及MVC架构模式进行Java Web项目开发的经验。

    熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器.过滤器等Web组件以及MVC架构 ...

  8. Linux(Centos)之安装tomcat并且部署Java Web项目

    1.准备工作 a.下载tomcat linux的包,地址:http://tomcat.apache.org/download-80.cgi,我们下载的版本是8.0,下载方式如图:          b ...

  9. Linux(Centos)之安装tomcat并且部署Java Web项目(转)

    1.准备工作 a.下载tomcat linux的包,地址:http://tomcat.apache.org/download-80.cgi,我们下载的版本是8.0,下载方式如图:          b ...

随机推荐

  1. CF768

    Codeforces Round #406 (Div. 1) A.Berzerk 考虑先手必胜态,一定是先手移动到某一个位置以后,这个位置是后手的必败态 考虑先手必败态,一定是无论先手如何移动,先手所 ...

  2. mac 当前位置打开终端

    做开发时经常会遇到在当前目录打开终端的情况,一直都是先启动终端,然后再切换到当前目录,今天发现了一个新的方法,虽然不是一步到位,但比以前快多了.   工具/原料   mac系统 苹果电脑 方法/步骤 ...

  3. 2016 第七届蓝桥杯 c/c++ B组省赛真题及解题报告

    2016 第七届蓝桥杯 c/c++ B组省赛真题及解题报告 勘误1:第6题第4个 if最后一个条件粗心写错了,答案应为1580. 条件应为abs(a[3]-a[7])!=1,宝宝心理苦啊.!感谢zzh ...

  4. mysql delete auto_increment列时的注意问题

    1. 说明 在对带有AUTO_INCREMENT列的表delete掉所有数据时: (1)对于MyISAM表,在delete表中所有数据时没有任何风险,随意折腾: (2)对于InnoDB表,在delet ...

  5. react 获取 input 的值

    1.通过 onChange -- e.target.value class App extends Component { state = { username: '张三' }; // 用户名 get ...

  6. loarocks install loadcaffe 失败

    loarocks install loadcaffe 失败 1.Error: Your user does not have write permissions in /home/zhangliang ...

  7. Mina、Netty、Twisted一起学(七):公布/订阅(Publish/Subscribe)

    消息传递有非常多种方式.请求/响应(Request/Reply)是最经常使用的.在前面的博文的样例中.非常多都是採用请求/响应的方式.当server接收到消息后,会马上write回写一条消息到clie ...

  8. Android自己定义View的实现方法

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/17357967 不知不觉中,带你一步步深入了解View系列的文章已经写到第四篇了.回 ...

  9. 【环境配置】Linux的经常使用命令

    系统信息 arch 显示机器的处理器架构uname -m 显示机器的处理器架构uname -r 显示正在使用的内核版本号 dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI)  ...

  10. 显示和隐藏Mac隐藏文件的命令

    显示Mac隐藏文件的命令:defaults write com.apple.finder AppleShowAllFiles -bool true 隐藏Mac隐藏文件的命令:defaults writ ...