πŸ’» Programming/Linux

[λ¦¬λˆ…μŠ€] war/jar νŒŒμΌμ— μƒˆ 파일 μΆ”κ°€ λ˜λŠ” λ³€κ²½ ν•˜κΈ°

μΌ€μ΄μΉ˜ 2017. 11. 9. 15:21

λ¦¬λˆ…μŠ€ ν™˜κ²½μ— λ°°ν¬ν•œ WAR λ˜λŠ” JAR νŒŒμΌμ— μƒˆλ‘œμš΄ νŒŒμΌμ„ μΆ”κ°€ν•˜κ±°λ‚˜ κΈ°μ‘΄ νŒŒμΌμ„ μ—…λ°μ΄νŠΈν•˜λŠ” 방법


μ•ˆλ…•ν•˜μ„Έμš”, μΌ€μ΄μΉ˜μž…λ‹ˆλ‹€. 


μ˜€λŠ˜μ€ λ¦¬λˆ…μŠ€ ν™˜κ²½μ— λ°°ν¬ν•œ WAR λ˜λŠ” JAR νŒŒμΌμ— μƒˆλ‘œμš΄ νŒŒμΌμ„ μΆ”κ°€ν•˜κ±°λ‚˜ κΈ°μ‘΄ νŒŒμΌμ„ μ—…λ°μ΄νŠΈν•˜λŠ” 방법을 μ•Œλ €λ“œλ¦¬κ² μŠ΅λ‹ˆλ‹€. κ·Έλ‹₯ μ΄λ ‡κ²Œ ν•  일이 μ—†λ‹€λ³΄λ‹ˆ ν•  λ•Œλ§ˆλ‹€ 계속 κΉŒλ¨Ήμ–΄μ„œ κ·Έλƒ₯ 혼자 끄적일겸 μ μ–΄λ΄…λ‹ˆλ‹€.


μš°μ„  /mydir/myapp.war 파일이 μžˆλ‹€κ³  κ°€μ •ν•©λ‹ˆλ‹€.


μš°μ„  이 νŒŒμΌμ•ˆμ— μ–΄λ–€ 파일이 μžˆλŠ”μ§€λΆ€ν„° 확인해보죠.


$ cd /mydir

$ ll    (λ˜λŠ” ls -l)

-rw-rw-r--. 1 keichee keichee 63378 Nov  6 11:37 myapp.war


$ unzip -l myapp.war


Archive:  myapp.war

  Length      Date    Time    Name

---------  ----------   -----    ----

        0  11-06-2017 11:28   META-INF/

     128  11-06-2017 11:28   META-INF/MANIFEST.MF

        0  11-06-2017 11:28   css/

        0  11-06-2017 11:28   images/

        0  11-06-2017 11:28   WEB-INF/

        0  11-06-2017 11:28   WEB-INF/classes/

        0  11-06-2017 11:28   WEB-INF/classes/com/

        0  11-06-2017 11:28   WEB-INF/classes/com/my/

.
.....μ€‘λž΅.....
.
  85308  08-14-2017 17:37   WEB-INF/lib/spring-oxm-4.3.0.RELEASE.jar
 587278  08-14-2017 17:37   WEB-INF/lib/spring-test-4.3.0.RELEASE.jar
 266993  08-14-2017 17:37   WEB-INF/lib/spring-tx-4.3.0.RELEASE.jar
 808847  08-14-2017 17:37   WEB-INF/lib/spring-web-4.3.0.RELEASE.jar
 905320  08-14-2017 17:37   WEB-INF/lib/spring-webmvc-4.3.0.RELEASE.jar
---------                           -------
 44109477                        393 files

WARνŒŒμΌμ•ˆμ— μ–΄λ–€ νŒŒμΌλ“€μ΄ λ“€μ–΄κ°€μžˆλŠ”μ§€ 디렉토리 κ²½λ‘œκΉŒμ§€ μ „λΆ€ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.


이제 파일 ν•˜λ‚˜λ₯Ό μΆ”μΆœν•΄λ³΄λ„λ‘ ν•˜μ£ .


μΆ”μΆœν•  λŒ€μƒμ€ /META-INF/MANIFEST.MF μž…λ‹ˆλ‹€. μ‚¬μ΄μ¦ˆκ°€ 128μ΄κ΅°μš”.


$ unzip myapp.war META-INF/MANIFEST.MF

Archive:  myapp.war

  inflating: META-INF/MANIFEST.MF

$ ll   (λ˜λŠ” ls -l )

-rw-rw-r--. 1 keichee keichee 44109477 Nov  6 11:37 myapp.war

drwxrwxr-x. 3 keichee keichee       17 Nov  9 14:42 META-INF

META-INF 디렉토리가 μƒμ„±λœ 것을 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.


$ cd META-INF

$ ls -l

-rw-rw-r--. 1 keichee keichee 128 Nov  6 11:28 MANIFEST.MF


파일이 μžˆλŠ” 것을 확인할 수 μžˆμŠ΅λ‹ˆλ‹€. μ‚¬μ΄μ¦ˆκ°€ 128둜 μœ„μ—μ„œ μ‘°νšŒν•œ 것과 λ™μΌν•˜λ„€μš”.


그럼 νŒŒμΌμ„ μˆ˜μ •ν•΄λ³ΌκΉŒμš”?


$ vi MANIFEST.MF


λ§ˆμŒλŒ€λ‘œ λ‚΄μš©μ„ μˆ˜μ •ν•΄μ„œ 파일 μ‚¬μ΄μ¦ˆκ°€ 달라지도둝 ν•΄μ£Όμ„Έμš”.


$ ls -l

-rw-rw-r--. 1 keichee keichee 145 Nov  9 13:38 MANIFEST.MF


파일의 μ‚¬μ΄μ¦ˆμ™€ μ‹œκ°„μ΄ λ³€κ²½λ˜μ—ˆλ„€μš”. 128 -> 145


그럼 이 νŒŒμΌμ„ 이제 λ‹€μ‹œ WAR νŒŒμΌμ•ˆμœΌλ‘œ μ—…λ°μ΄νŠΈν•΄μ„œ 넣어보도둝 ν•˜κ² μŠ΅λ‹ˆλ‹€.


$ jar uvf myapp.war META-INF/MANIFEST.MF

adding: META-INF/MANIFEST.MF(in = 145) (out= 120)(deflated 17%)


νŒŒμΌμ„ μΆ”κ°€ν•œλ‹€κ³  λ‚˜μ˜€λ©΄μ„œ 압좕이 μ–Όλ§ˆλ‚˜ λλŠ”μ§€κ°€ λ‚˜μ˜€λ„€μš”. 17%κ°€ μ••μΆ•λμŠ΅λ‹ˆλ‹€. 참고둜 μ—¬κΈ°μ„œ in은 μ‹€μ œ 파일 μ‚¬μ΄μ¦ˆκ³  out은 μ••μΆ•λœ νŒŒμΌμ‚¬μ΄μ¦ˆ μž…λ‹ˆλ‹€.


λ§Œμ•½ jar λͺ…λ Ήμ–΄κ°€ 없을 κ²½μš°μ—λŠ” zip λͺ…λ Ήμ–΄λ₯Ό μ‚¬μš©ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

$ zip -r myapp.war META-INF/MANIFEST.MF

adding: META-INF/MANIFEST.MF(in = 145) (out= 120)(deflated 17%)



이제 λ‹€μ‹œ myapp.war νŒŒμΌμ— μ–΄λ–€ νŒŒμΌλ“€μ΄ μžˆλŠ”μ§€ μ‘°νšŒν•΄λ³΄λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€.


$ unzip -l myapp.war


Archive:  myapp.war

  Length      Date    Time    Name

---------  ----------   -----    ----

        0  11-06-2017 11:28   META-INF/

     145  11-09-2017 13:38   META-INF/MANIFEST.MF

        0  11-06-2017 11:28   css/

        0  11-06-2017 11:28   images/

        0  11-06-2017 11:28   WEB-INF/

        0  11-06-2017 11:28   WEB-INF/classes/

        0  11-06-2017 11:28   WEB-INF/classes/com/

        0  11-06-2017 11:28   WEB-INF/classes/com/my/

.
.....μ€‘λž΅.....
.
  85308  08-14-2017 17:37   WEB-INF/lib/spring-oxm-4.3.0.RELEASE.jar
 587278  08-14-2017 17:37   WEB-INF/lib/spring-test-4.3.0.RELEASE.jar
 266993  08-14-2017 17:37   WEB-INF/lib/spring-tx-4.3.0.RELEASE.jar
 808847  08-14-2017 17:37   WEB-INF/lib/spring-web-4.3.0.RELEASE.jar
 905320  08-14-2017 17:37   WEB-INF/lib/spring-webmvc-4.3.0.RELEASE.jar
---------                           -------
 44109494                        393 files


파일 μ‚¬μ΄μ¦ˆμ™€ λ‚ μ§œκ°€ 변경이 λ˜μ—ˆλ„€μš”.

참고둜 여기에 μ‘°νšŒλ˜λŠ” νŒŒμΌμ‚¬μ΄μ¦ˆλŠ” μ••μΆ•λ˜κΈ° μ „μ˜ 파일 μ‚¬μ΄μ¦ˆμž…λ‹ˆλ‹€.