在dos命令下打jar,war,ear包

本文介绍如何利用jar命令进行项目的打包与解包操作。具体包括如何使用jarcvf命令来创建war、jar和ear格式的包文件,并且演示了如何通过指定*.*来包含项目中的所有文件。
在Dos命令下-->目目录下:
jar cvf project.war *.*用命令进入如果打包的文件内部:
jar cvf  文件名.war *.* 文件名.war
文件名.jar
文件名.ear
*.*代表项目文件中所有的文件
Jar cvf  MyWeb.war *.*//打包Jar tvf  MyWeb.war *.*//查看包Jar xvf  MyWeb.war *.*//解包
#!/bin/bash # 下载的目录 SOURCE_DIR="/root/a" #需发的文件名 FILE_LIST="file_list.txt" #生成的发ant命令 OUTPUT_FILE="11.txt" # 创建正式的备份目录 backup_dir="backup_$(date '+%Y%m%d')" mkdir -p "$backup_dir" # EJB子目录与构建文件的映射 declare -A EJB_MAPPING=( ["LkmAgvEjbs.ear"]="agv.xml" ["LkmBiEjbs.ear"]="bi.xml" ["LkmBoardEjbs.ear"]="board.xml" ["LkmCommonEjbs.ear"]="commejb.xml" ["LkmConvertEjbs.ear"]="convert.xml" ["LkmDataSwitch.ear"]="dataswitch.xml" ["LkmDatatransfer.ear"]="datatrans.xml" ["LkmFopEjbs.ear"]="fopejb.xml" ["LkmJmsEjbs.ear"]="jmsejb.xml" ["LkmMachineEjbs.ear"]="machine.xml" ["LkmNcEjbs.ear"]="ncejb.xml" ["LkmOrderEjbs.ear"]="order.xml" ["LkmPlatformEjbs.ear"]="platform.xml" ["LkmPoiEjbs.ear"]="poiejb.xml" ["LkmPrintEjbs.ear"]="print.xml" ["LkmProgramEjbs.ear"]="program.xml" ["LkmQcEjbs.ear"]="qc.xml" ["LkmQuoteEjbs.ear"]="quoteejb.xml" ["LkmToolEjbs.ear"]="tool.xml" ["LkmUmsEjbs.ear"]="umsejb.xml" ["WorkTimeEjbs.ear"]="worktime.xml" ) # 主目录与构建文件的映射 declare -A MAIN_MAPPING=( ["jsf_apps"]="pmi.xml" ["restful_apps"]="rest.xml" ["shared_library"]="remote.xml" ) # 检查前置条件 check_prerequisites() { if [ ! -f "$FILE_LIST" ]; then echo "错误: 文件列表 $FILE_LIST 不存在" exit 1 fi if [ ! -d "$SOURCE_DIR" ]; then echo "错误: 源目录 $SOURCE_DIR 不存在" exit 1 fi } # 生成Ant命令 generate_ant_command() { local filename="$1" local location="$2" case "$location" in ejb_apps/LkmAgvEjbs.ear) echo "ant -f agv.xml -Djar=$filename" ;; ejb_apps/LkmBiEjbs.ear) echo "ant -f bi.xml -Djar=$filename" ;; ejb_apps/LkmBoardEjbs.ear) echo "ant -f board.xml -Djar=$filename" ;; ejb_apps/LkmCommonEjbs.ear) echo "ant -f commejb.xml -Djar=$filename" ;; ejb_apps/LkmConvertEjbs.ear) echo "ant -f convert.xml -Djar=$filename" ;; ejb_apps/LkmDataSwitch.ear) echo "ant -f dataswitch.xml -Djar=$filename" ;; ejb_apps/LkmDatatransfer.ear) echo "ant -f datatrans.xml -Djar=$filename" ;; ejb_apps/LkmFopEjbs.ear) echo "ant -f fopejb.xml -Djar=$filename" ;; ejb_apps/LkmJmsEjbs.ear) echo "ant -f jmsejb.xml -Djar=$filename" ;; ejb_apps/LkmMachineEjbs.ear) echo "ant -f machine.xml -Djar=$filename" ;; ejb_apps/LkmNcEjbs.ear) echo "ant -f ncejb.xml -Djar=$filename" ;; ejb_apps/LkmOrderEjbs.ear) echo "ant -f order.xml -Djar=$filename" ;; ejb_apps/LkmPlatformEjbs.ear) echo "ant -f platform.xml -Djar=$filename" ;; ejb_apps/LkmPoiEjbs.ear) echo "ant -f poiejb.xml -Djar=$filename" ;; ejb_apps/LkmPrintEjbs.ear) echo "ant -f print.xml -Djar=$filename" ;; ejb_apps/LkmProgramEjbs.ear) echo "ant -f program.xml -Djar=$filename" ;; ejb_apps/LkmQcEjbs.ear) echo "ant -f qc.xml -Djar=$filename" ;; ejb_apps/LkmQuoteEjbs.ear) echo "ant -f quoteejb.xml -Djar=$filename" ;; ejb_apps/LkmToolEjbs.ear) echo "ant -f tool.xml -Djar=$filename" ;; ejb_apps/LkmUmsEjbs.ear) echo "ant -f umsejb.xml -Djar=$filename" ;; ejb_apps/WorkTimeEjbs.ear) echo "ant -f worktime.xml -Djar=$filename" ;; jsf_apps) echo "ant -f pmi.xml -Djar=$filename" ;; restful_apps) echo "ant -f rest.xml -Djar=$filename" ;; shared_library) echo "ant -f remote.xml -Djar=$filename" ;; *) echo "# 未知位置: $location" ;; esac } # 同步单个文件 sync_single_file() { local filename="$1" local source_file="$SOURCE_DIR/$filename" echo "处理文件: $filename" local ant_commands=() local found_in_ejb=false # 优先在EJB子目录中查找(限制深度2层) for subdir in "${!EJB_MAPPING[@]}"; do local target_path="ejb_apps/$subdir/$filename" if [ -f "$target_path" ]; then # 备份原文件 cp "$target_path" "$backup_dir/" 2>/dev/null # 覆盖文件 cp "$source_file" "$target_path" ant_commands+=("$(generate_ant_command "$filename" "ejb_apps/$subdir")") echo " ✓ 已覆盖到: ejb_apps/$subdir" found_in_ejb=true fi done # 如果在EJB子目录中没找到,再在jsf目录中查找(限制深度2层) if [ "$found_in_ejb" = false ]; then for maindir in "${!MAIN_MAPPING[@]}"; do local target_path="jsf_apps/LkmPmi.ear/LkmPmi.war/WEB-INF/lib/$filename" if [ -f "$target_path" ]; then # 备份原文件 cp "$target_path" "$backup_dir/" 2>/dev/null # 覆盖文件 cp "$source_file" "$target_path" ant_commands+=("$(generate_ant_command "$filename" "$maindir")") echo " ✓ 已覆盖到: $maindir" found_in_ejb=true fi done fi # 如果在jsf目录中没找到,再在restful目录中查找(限制深度2层) if [ "$found_in_ejb" = false ]; then for maindir in "${!MAIN_MAPPING[@]}"; do local target_path="restful_apps/LkmRestful.ear/LkmRestful.war/WEB-INF/lib/$filename" if [ -f "$target_path" ]; then # 备份原文件 cp "$target_path" "$backup_dir/" 2>/dev/null # 覆盖文件 cp "$source_file" "$target_path" ant_commands+=("$(generate_ant_command "$filename" "$maindir")") echo " ✓ 已覆盖到: $maindir" found_in_ejb=true fi done fi # 如果在restful目录中没找到,再在shared_library目录中查找(限制深度2层) if [ "$found_in_ejb" = false ]; then for maindir in "${!MAIN_MAPPING[@]}"; do local target_path="shared_library/lkm.ejb.remote.ear/APP-INF\lib/$filename" if [ -f "$target_path" ]; then # 备份原文件 cp "$target_path" "$backup_dir/" 2>/dev/null # 覆盖文件 cp "$source_file" "$target_path" ant_commands+=("$(generate_ant_command "$filename" "$maindir")") echo " ✓ 已覆盖到: $maindir" fi done fi # 将生成的Ant命令写入11.txt for cmd in "${ant_commands[@]}"; do echo "$cmd" >> "$OUTPUT_FILE" done if [ ${#ant_commands[@]} -eq 0 ]; then echo " ❌ 未找到在四个目录中" else echo " ✅ 生成 ${#ant_commands[@]} 个构建命令" fi echo "----------------------------------------" } # 主函数 main() { check_prerequisites # 清空输出文件 > "$OUTPUT_FILE" echo "开始增强版文件同步任务(目录深度限制: 2层)" echo "源目录: $SOURCE_DIR" echo "" local total_files=0 # 读取文件列表并处理 while IFS= read -r filename; do if [[ -z "$filename" || "$filename" =~ ^# ]]; then continue fi filename=$(echo "$filename" | tr -d '\r' | xargs) ((total_files++)) sync_single_file "$filename" echo "" done < "$FILE_LIST" echo "========================================" echo "增强版同步任务完成!" echo "处理文件数: $total_files" echo "构建命令已保存到: $OUTPUT_FILE" } main "$@" <code_end>
最新发布
11-19
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值