我需要为不同的环境更新 WAR 中的资源文件(例如数据库信息)
所以我需要编写一个脚本来更新 WAR 中的这些文件。请让我知道以上是否可以使用 Jython 脚本或建议任何其他可以实现的脚本。
我需要为不同的环境更新 WAR 中的资源文件(例如数据库信息)
所以我需要编写一个脚本来更新 WAR 中的这些文件。请让我知道以上是否可以使用 Jython 脚本或建议任何其他可以实现的脚本。
虽然.war
文件格式与文件格式完全相同,.zip
但您可以使用zipfile
模块来处理这些文件。不幸的是ZipFile
,对象不允许修改现有文件中的.zip
文件,因此您必须从源中复制所有文件.war
并修改所选文件的内容。例子:
def modify_war(war):
if os.path.exists(war):
zf_in = zipfile.ZipFile(war, 'r')
zf_out = zipfile.ZipFile(war[:-4] + '_new.war', 'w')
try:
for item in zf_in.infolist():
content = zf_in.read(item.filename)
if item.filename == 'META-INF/MANIFEST.MF':
content += '\nModified-By: mn\n'
zf_out.writestr(item, content)
finally:
zf_in.close()
zf_out.close()