2
다른 환경 (예 : 데이터베이스 정보)에 대해 WAR 내의 리소스 파일을 업데이트해야합니다.WAR 내부의 파일을 수정하는 스크립트
그래서 WAR 내에 이러한 파일을 업데이트하는 스크립트를 작성해야합니다. 자이 썬 스크립트를 사용하여 위와 같은 것이 가능하다면 알려 주시기 바랍니다.
다른 환경 (예 : 데이터베이스 정보)에 대해 WAR 내의 리소스 파일을 업데이트해야합니다.WAR 내부의 파일을 수정하는 스크립트
그래서 WAR 내에 이러한 파일을 업데이트하는 스크립트를 작성해야합니다. 자이 썬 스크립트를 사용하여 위와 같은 것이 가능하다면 알려 주시기 바랍니다.
.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()