2013-05-03 3 views
2

다른 환경 (예 : 데이터베이스 정보)에 대해 WAR 내의 리소스 파일을 업데이트해야합니다.WAR 내부의 파일을 수정하는 스크립트

그래서 WAR 내에 이러한 파일을 업데이트하는 스크립트를 작성해야합니다. 자이 썬 스크립트를 사용하여 위와 같은 것이 가능하다면 알려 주시기 바랍니다.

답변

0

.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() 
관련 문제