Java工程打包常用命令
mvn打包
-Dmaven.test.skip=true
表示跳过测试
-Dmaven.repo.local
可用于指定本地maven仓库路径
例如:
mvn clean package -Dmaven.test.skip=true -Dmaven.repo.local=/my/mvn/repo
非maven工程war打包脚本
WAR包结构分析:
xxx.war
|-META-INF //存储war的基础信息,比如构建作者,使用的jdk版本等,主要是MANIFEST.MF
|-somefile.xx //war包根目录下的文件就像nginx中的静态资源,可被浏览器直接访问
|-WEB-INF // WEB-INF不能像静态资源那样被浏览器直接访问,而是受web.xml的控制
|-web.xml //
|-classes // 所有编译后的.class文件会放在这里面,该目录会加到CLASSPATH中
|-lib // 放各种依赖的jar包,这些jar包会加到CLASSPATH中
|-其他目录
下面是一个示例脚本,mywar作为war包的根目录
#!/usr/bin/env bash
set -x
rm -fr mywar/* || exit 1
mkdir mywar/WEB-INF/classes -p || exit 1
find src -name *.java > javaFiles.txt || exit 1
javac -g -d mywar/WEB-INF/classes -classpath .:mywar/WEB-INF/classes:WebContent/WEB-INF/lib/* @javaFiles.txt || exit 1
cp -r src/* mywar/WEB-INF/classes || exit 1
find mywar/WEB-INF/classes -name *.java -exec rm -f {} \; || exit 1
cp -r resources/* mywar/WEB-INF/classes || exit 1
cp -r WebContent/* mywar/ || exit 1
cd mywar || exit 1
zip -r ../MYAPP.war * || exit 1