原本,想用jar命令來快速替換war包的文件的,可是,發現Ubuntu中沒有裝Java,懶癌發做,遂使用zip與unzip命令代替。app
zip:壓縮命令ide
格式: zip [-選項] *.war 要壓縮的文件 例子: zip -m app.war /WEB-INF/classes/com/app/business/service/platform/impl/abc.classspa
選項:orm
-m: 不檢查而替換原有文件。網上解釋:將文件壓縮而加入壓縮文件後,刪除原有文件。即把文件移動到壓縮文件中。ip
unzip:解壓命令md5
格式: unzip [-選項] *.war 要解壓的文件 例子: unzip -o app.war WEB-INF/classes/com/app/business/service/platform/impl/abc.class it
---> unzip app.war WEB-INF/classes/com/app/business/service/platform/impl/abc.classform
選項:class
-l (list): 不解壓而查看war包中的文件打包
-v : 執行是時顯示詳細的信息
-f (fresh): 覆蓋原有文件
-o (overwrite): 強制覆蓋,不提示是否覆蓋
-u (update): 已有的,覆蓋;未有的,新建
-n (never): 不覆蓋已有文件
包:app.war
要替換的文件:/WEB-INF/classes/com/app/business/service/platform/impl/abc.class
步驟:(顏色爲命令,非顏色爲結果)
1. 使用unzip、grep命令將war包中要替換的文件先找出來,將路徑一併解壓出來
a. unzip -l app.war |grep abc.class ---> unzip -v app.war |grep abc.class / unzip -lv app.war |grep abc.class
49974 2019-08-02 02:28 WEB-INF/classes/com/app/business/service/platform/impl/abc.class
b. unzip app.war WEB-INF/classes/com/app/business/service/platform/impl/abc.class
Archive: app.war
inflating: WEB-INF/classes/com/app/business/service/platform/impl/abc.class
2. 使用move/cp命令將新文件替換解壓出來的舊文件
cp abc.class WEB-INF/classes/com/app/business/service/platform/impl/
3. 使用zip命令將路徑下的新文件打包入war包
zip -m app.war WEB-INF/classes/com/app/business/service/platform/impl/abc.class
updating: WEB-INF/classes/com/tmri/rural/business/service/platform/impl/AbstractBusinessEntityManagementServiceImpl.class (deflated 60%)
固然,還能夠使用md5sum命令驗證文件的是否更改。