ÀÚ¿ø ¹× ·ÎÄà ÆÄÀÏ ½Ã½ºÅÛ

Ç÷§Æû Äھ ½ÇÇà ÁßÀ̰í ÀÚ¿ø Ç÷¯±×ÀÎÀÌ È°¼º »óÅÂÀ̸é ÀÛ¾÷°ø°£ÀÌ IWorkspace ÀνºÅϽº·Î Ç¥½ÃµÇ´Âµ¥, ÀÌ ÀνºÅϽº´Â Æ÷ÇÔµÈ ÀÚ¿ø¿¡ ¾×¼¼½ºÇϱâ À§ÇØ ÇÁ·ÎÅäÄÝÀ» Á¦°øÇÕ´Ï´Ù. IWorkspace ÀνºÅϽº´Â ¿¬°üµÈ ÆÄÀÏ ¹× µð·ºÅ丮 ÄÝ·º¼ÇÀ» ·ÎÄà ÆÄÀÏ ½Ã½ºÅÛ¿¡ Ç¥½ÃÇÕ´Ï´Ù. org.eclipse.core.resourcesÀÇ ÀÚ¿ø Ç÷¯±×ÀΠŬ·¡½º¿¡¼­ ÀÛ¾÷°ø°£¿¡ ¾×¼¼½ºÇÒ ¼ö ÀÖ½À´Ï´Ù.

ResourcesPlugin.getWorkspace();

ÀÚ¿ø Ç÷¯±×ÀÎÀÌ ½ÇÇà ÁßÀÌ ¾Æ´Ï¸é, ÀÛ¾÷°ø°£Àº ·ÎÄà ÆÄÀÏ ½Ã½ºÅÛ¿¡¸¸ Á¸ÀçÇϰí Ç¥ÁØ ÆÄÀÏ ±â¹Ý µµ±¸¸¦ ÅëÇØ »ç¿ëÀÚ°¡ À̸¦ º¸°Å³ª Á¶ÀÛÇÕ´Ï´Ù. ÀÚ¿ø Ç÷¯±×ÀÎ API¸¦ ¼³¸íÇϸ鼭 µð½ºÅ©¿¡¼­ ÀÛ¾÷°ø°£ÀÇ ¸ð¾çÀ» »ìÆì º¸µµ·Ï ÇսôÙ.

µð½ºÅ©ÀÇ »ùÇà Ʈ¸®

Ç÷§Æû SDK¸¦ ¼³Ä¡ÇßÀ» ¶§ ¼±ÅÃÇÑ µð·ºÅ丮¿¡ ÆÄÀÏ ¾ÐÃàÀ» Ç®¾ú´Âµ¥,  ÀÌ µð·ºÅ丮¸¦ Ç÷§Æû ·çÆ® µð·ºÅ丮¶ó°í ÇÕ´Ï´Ù. ÀÌ µð·ºÅ丮´Â plugins µð·ºÅ丮°¡ Æ÷ÇÔµÈ µð·ºÅ丮ÀÔ´Ï´Ù. Ç÷§Æû ·çÆ® µð·ºÅ丮 ³»¿¡´Â Ç÷§Æû¿¡ ÀÇÇØ ÀÛ¼ºµÇ¾î Á¶À۵Ǵ ÀÚ¿øÀ» º¸À¯ÇÏ´Â µ¥ »ç¿ëµÇ´Â workspace µð·ºÅ丮°¡ ÀÖ½À´Ï´Ù.  workspace µð·ºÅ丮¸¦ »ìÆì º¸¸é ÀÛ¾÷°ø°£¿¡ ÀÖ´Â °¢ ÇÁ·ÎÁ§Æ®¿¡ ´ëÇØ µ¶¸³ ¼­ºêµð·ºÅ丮°¡ ÀÖ½À´Ï´Ù. ÀÌ ¼­ºêµð·ºÅ丮 ³»¿¡ °¢ ÇÁ·ÎÁ§Æ®¿¡ Æ÷ÇÔµÈ ÆÄÀϰú Æú´õ°¡ ÀÖ½À´Ï´Ù.

ÀÌ ¿¹¿¡¼­ SD°¡ c:\MySDK¿¡ ¼³Ä¡µÇ¸é, c:\MySDK\workspace µð·ºÅ丮 ³»¿¡ ÀÛ¾÷°ø°£ÀÇ ÇÁ·ÎÁ§Æ®( MyWeb¿Í MyServlet) À̸§À» µû¶ó À̸§ ÁöÁ¤µÈ ¼­ºêµð·ºÅ丮°¡ ÀÖ½À´Ï´Ù. ÀÌ µð·ºÅ丮¸¦ ÇÁ·ÎÁ§Æ®ÀÇ ÄÁÅÙÃ÷ µð·ºÅ丮¶ó°í ÇÕ´Ï´Ù. ÄÁÅÙÃ÷ µð·ºÅ丮´Â »ç¿ëÀÚ°¡ ÇÁ·ÎÁ§Æ®¸¦ ÀÛ¼ºÇÒ ¶§ Ç÷§Æû¿¡ ÀÇÇØ ÀÛ¼ºµË´Ï´Ù.

°¢ µð·ºÅ丮 ³»¿¡ ÀÛ¾÷°ø°£ÀÇ ÀÚ¿ø Æ®¸®¿¡¼­¿Í µ¿ÀÏÇÑ ¹æ¹ýÀ¸·Î ·¹À̾ƿôµÈ ÇÁ·ÎÁ§Æ® ³»ÀÇ ÆÄÀÏ ¹× Æú´õ°¡ ÀÖ½À´Ï´Ù. ¸ðµç ÆÄÀÏ À̸§Àº µ¿ÀÏÇϸç, ÆÄÀÏ ÄÁÅÙÃ÷´Â ÆÄÀÏ ½Ã½ºÅÛ¿¡¼­ ¾×¼¼½ºÇ졂 ÀÛ¾÷°ø°£¿¡¼­ ¾×¼¼½ºÇ졂 µ¿ÀÏÇÕ´Ï´Ù.

C:\MySDK\workspace (ÀÛ¾÷°ø°£ ·çÆ®)
    .metadata\(Ç÷§Æû ¸ÞŸµ¥ÀÌÅÍ µð·ºÅ丮)
    MyWeb\(MyWebÀÇ ÇÁ·ÎÁ§Æ® ÄÁÅÙÃ÷ µð·ºÅ丮)
        index.html
        images\
            logo.gif
    MyServlet\(MyServletÀÇ ÇÁ·ÎÁ§Æ® ÄÁÅÙÃ÷ µð·ºÅ丮)
        src\
            main.java
        bin\
            main.class
            main$$1.class

Ç÷§Æû¿¡´Â Ç÷§Æû ³»ºÎ Á¤º¸¸¦ º¸À¯Çϱâ À§ÇÑ Æ¯¼ö .metadata µð·ºÅ丮°¡ ÀÖ½À´Ï´Ù. ÀÛ¾÷°ø°£ÀÇ .metadata µð·ºÅ丮´Â "ºí·¢ ¹Ú½º"·Î °£Áֵ˴ϴÙ. ÀÛ¾÷°ø°£ ±¸Á¶¿¡ ´ëÇÑ Áß¿äÇÑ Á¤º¸(¿¹: ÇÁ·ÎÁ§Æ® ÂüÁ¶»çÇ× ¶Ç´Â ÀÚ¿ø Ư¼º)°¡ ÀÛ¾÷°ø°£ÀÇ ¸ÞŸµ¥ÀÌÅÍ ºÎºÐ¿¡ ÀúÀåµÇ¸ç, Ç÷§Æû API¸¦ ÅëÇØ µµ±¸¿¡ ÀÇÇØ¼­¸¸ Á¤º¸¿¡ ¾×¼¼½ºÇØ¾ß ÇÕ´Ï´Ù.  ÀÏ¹Ý ÆÄÀÏ ½Ã½ºÅÛ API¸¦ »ç¿ëÇÏ¿© ÀÌ ÆÄÀÏÀ» ÆíÁýÇϰųª Á¶ÀÛÇØ¼­´Â ¾ÈµË´Ï´Ù.

.metadata µð·ºÅ丮¸¦ Á¦¿ÜÇϰí, ÀÛ¾÷°ø°£ µð·ºÅ丮ÀÇ Æú´õ ¹× ÆÄÀÏÀº ´Ù¸¥ µµ±¸·Î »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.  ÀÌ µð·ºÅ丮ÀÇ ÆÄÀÏ ¹× Æú´õ´Â ÅëÇÕµÇÁö ¾ÊÀº µµ±¸(¿¹: ¹®¼­ ÆíÁý±â ¹× ÆÄÀÏ ½Ã½ºÅÛ À¯Æ¿¸®Æ¼)¿¡ ÀÇÇØ Á¶ÀÛµÉ ¼ö ÀÖ½À´Ï´Ù.  À¯ÀÏÇÑ ¹®Á¦Á¡Àº »ç¿ëÀÚ°¡ Workbench¿¡¼­ ÀÌ ÆÄÀÏÀ» ÆíÁýÇϰųª ¿ÜºÎÀûÀ¸·Î ÆÄÀÏÀ» ÆíÁýÇÒ ¶§ ÁÖÀǸ¦ ±â¿ï¿©¾ß ÇÑ´Ù´Â °ÍÀÔ´Ï´Ù. À̰ÍÀº »ç¿ëÀÚ°¡ µÎ °³ÀÇ µ¶¸³Çü µµ±¸¸¦ »ç¿ëÇÏ¿© ÆÄÀÏÀ» ÆíÁýÇÏ´Â °æ¿ì¿Í ´Ù¸£Áö ¾Ê½À´Ï´Ù.    Workbench´Â ÀÚ¿ø¿¡ ´ëÇÑ ÀÛ¾÷°ø°£ º¸±â¸¦ ÆÄÀÏ ½Ã½ºÅÛÀÇ ½ÇÁ¦ »óÅÂ¿Í ÀÏÄ¡½Ã۱â À§ÇØ »õ·Î °íÄ¡±â Á¶ÀÛÀ» Á¦°øÇÕ´Ï´Ù.

ÄÚµåÀÇ »ùÇà Ʈ¸®

ÀÚ¿ø API¸¦ »ç¿ëÇϸé ÀÌ ÀÚ¿ø Æ®¸®¸¦ ÄÚµå·Î Á¶ÀÛÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÚ¿ø API¸¦ °£·«È÷ »ìÆì º¸±â À§ÇØ ¸î °¡Áö ÄÚµå ½º´ÏÆêÀ» »ìÆì º¸µµ·Ï ÇϰڽÀ´Ï´Ù. ÀÚ¿ø API´Â org.eclipse.core.resources¿¡ ÀÏ·ÃÀÇ ÀÎÅÍÆäÀ̽º·Î Á¤Àǵ˴ϴÙ. ÀÚ¿ø À¯Çü(¿¹: IProject, IFolder ¹× IFile) ¸ðµÎ¿¡ ´ëÇØ ÀÎÅÍÆäÀ̽º°¡ ÀÖ½À´Ï´Ù. ±¤¹üÀ§ÇÑ °øÅë ÇÁ·ÎÅäÄÝÀº IResource¿¡ Á¤Àǵ˴ϴÙ. ÀÚ¿ø ¶Ç´Â ÆÄÀÏ ½Ã½ºÅÛ °æ·Î °°Àº ¼¼±×¸ÕƮȭµÈ °æ·Î¸¦ Ç¥½ÃÇÏ´Â org.eclipse.core.runtime ÀÎÅÍÆäÀ̽º IPathµµ »ç¿ëÇÕ´Ï´Ù.

ÀÚ¿ø Á¶ÀÛÀº java.io.FileÀ» »ç¿ëÇÏ¿© ÆÄÀÏÀ» Á¶ÀÛÇÏ´Â °Í°ú ¾ÆÁÖ À¯»çÇÕ´Ï´Ù.  API´Â ÇÚµéÀ» ±â¹ÝÀ¸·Î ÇÕ´Ï´Ù.  getProject ¶Ç´Â getFolder °°Àº API¸¦ »ç¿ëÇÒ ¶§ ÀÚ¿ø¿¡ ´ëÇÑ ÇÚµéÀÌ ¸®Åϵ˴ϴÙ.   ÇÚµéÀ» »ç¿ëÇÏ¿© ¾î¶² ÀÛ¾÷À» ¼öÇàÇÏ·Á°í ½ÃµµÇÒ ¶§±îÁö ÀÚ¿ø ÀÚü°¡ Á¸ÀçÇÑ´Ù´Â º¸ÀåÀ̳ª ¿ä±¸»çÇ×Àº ¾ø½À´Ï´Ù.  ÀÚ¿øÀÌ Á¸ÀçÇÑ´Ù°í ¿¹»óÇÏ´Â °æ¿ì, exists() ÇÁ·ÎÅäÄÝÀ» »ç¿ëÇÏ¿© ±× °æ¿ì¿¡ ÇØ´çÇÏ´ÂÁö È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù.  

Ç÷¯±×Àο¡¼­ ÀÛ¾÷°ø°£À» Ž»öÇÏ·Á¸é ÀÛ¾÷°ø°£¿¡¼­ ÀÚ¿ø °èÃþ ±¸Á¶ ¸Ç À§¸¦ Ç¥½ÃÇÏ´Â IWorkspaceRoot¸¦ ¸ÕÀú ¾ò¾î¾ß ÇÕ´Ï´Ù.

IWorkspaceRoot myWorkspaceRoot = ResourcesPlugin.getWorkspace().getRoot();

ÀÛ¾÷°ø°£ ·çÆ®°¡ ÀÖÀ¸¸é, ÀÛ¾÷°ø°£ÀÇ ÇÁ·ÎÁ§Æ®¿¡ ¾×¼¼½ºÇÒ ¼ö ÀÖ½À´Ï´Ù.

IProject myWebProject = myWorkspaceRoot.getProject("MyWeb");
// open if necessary
if (myWebProject.exists() && !myWebProject.isOpen())
    myWebProject.open(null);

ÇÁ·ÎÁ§Æ®¸¦ Á¶ÀÛÇϱâ Àü¿¡ ¸ÕÀú ÇÁ·ÎÁ§Æ®¸¦ ¿­¾î¾ß ÇÕ´Ï´Ù. ÇÁ·ÎÁ§Æ®¸¦ ¿­¸é µð½ºÅ©¿¡¼­ ÇÁ·ÎÁ§Æ® ±¸Á¶¸¦ Àоî ÇÁ·ÎÁ§Æ®ÀÇ ÀÚ¿ø Æ®¸®¿¡ ´ëÇÑ ³»ºÎ ¸Þ¸ð¸® ¿ÀºêÁ§Æ® Ç¥½Ã¸¦ ÀÛ¼ºÇÕ´Ï´Ù. ÇÁ·ÎÁ§Æ® ¿­±â´Â ¿­¸° °¢ ÇÁ·ÎÁ§Æ®°¡ ³»ºÎÀûÀ¸·Î ÀÚ¿ø Æ®¸®¸¦ Ç¥½ÃÇϱâ À§ÇØ ¸Þ¸ð¸®¸¦ »ç¿ëÇÏ°í ¿­¸° ÇÁ·ÎÁ§Æ®°¡ ¿©·¯ ÀÚ¿ø ¶óÀÌÇÁ »çÀÌŬ À̺¥Æ®(¿¹: ºôµå)¿¡ Âü¿©ÇÏ´Â ¸í½ÃÀûÀÎ Á¶ÀÛÀÔ´Ï´Ù.  ÀϹÝÀûÀ¸·Î 󸮿ϷáµÈ ÇÁ·ÎÁ§Æ®¿¡´Â ¾×¼¼½ºÇÒ ¼ö ¾øÀ¸¸ç, ÀÚ¿øÀÌ ÆÄÀÏ ½Ã½ºÅÛ¿¡ °è¼Ó ÀÖ´õ¶óµµ 󸮿ϷáµÈ ÇÁ·ÎÁ§Æ®´Â ºó »óÅ·Πǥ½ÃµË´Ï´Ù.

ÀÌ ÀÚ¿ø ¿¹Á¦ Áß ´Ù¼ö°¡ ÀÚ¿øÀ» Á¶ÀÛÇÒ ¶§ ³Î(null) ¸Å°³º¯¼ö¸¦ Àü´ÞÇÑ´Ù´Â »ç½ÇÀ» ¾Ë ¼ö ÀÖ½À´Ï´Ù. ´Ù¼öÀÇ ÀÚ¿ø Á¶ÀÛÀº ÁøÇà º¸°í ¹× »ç¿ëÀÚ Ãë¼Ò µîÀÌ ÇÊ¿äÇÒ ¼ö ÀÖ´Â º¹ÀâÇÑ ÀÛ¾÷ÀÔ´Ï´Ù. Äڵ忡 »ç¿ëÀÚ ÀÎÅÍÆäÀ̽º°¡ ÀÖ´Â °æ¿ì, ÀϹÝÀûÀ¸·Î ÀÚ¿øÀÌ Á¶ÀÛµÉ ¶§ ÀÚ¿ø Ç÷¯±×ÀÎÀÌ ÁøÇàÀ» º¸°íÇÒ ¼ö ÀÖµµ·Ï ÇÏ°í »ç¿ëÀÚ°¡ ¿øÇϸé Á¶ÀÛÀ» Ãë¼ÒÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â IProgressMonitor¸¦ Àü´ÞÇÕ´Ï´Ù.  Áö±ÝÀº ÁøÇà ¸ð´ÏÅͰ¡ ¾øÀ½À» Ç¥½ÃÇÏ´Â null¸¸ Àü´ÞÇÕ´Ï´Ù.

ÇÁ·ÎÁ§Æ®°¡ ¿­·Á ÀÖÀ¸¸é Æú´õ ¹× ÆÄÀÏ¿¡ ¾×¼¼½ºÇÒ ¼ö ÀÖÀ¸¸ç, Æú´õ ¹× ÆÄÀÏÀ» Ãß°¡·Î ÀÛ¼ºÇÒ ¼öµµ ÀÖ½À´Ï´Ù.  ´ÙÀ½ ¿¹¿¡¼­´Â ÀÛ¾÷°ø°£ ¹Û¿¡ À§Ä¡ÇÑ ¿ÜºÎ ÆÄÀÏ ÄÁÅÙÃ÷¿¡¼­ ÆÄÀÏ ÀÚ¿øÀ» ÀÛ¼ºÇÕ´Ï´Ù.

IFolder imagesFolder = myWebProject.getFolder("images");
if (imagesFolder.exists()) {
    // create a new file
    IFile newLogo = imagesFolder.getFile("newLogo.gif");
    FileInputStream fileStream = new FileInputStream(
        "c:/MyOtherData/newLogo.gif");
    newLogo.create(fileStream, false, null);
    fileStream.close();
}

À§ ¿¹¿¡¼­ ù ¹øÂ° ÇàÀº À̹ÌÁö Æú´õ¿¡ ´ëÇÑ ÇÚµéÀ» ¾ò½À´Ï´Ù.  Æú´õ¿¡ ´ëÇÑ ÀÛ¾÷À» ¼öÇàÇϱâ Àü¿¡ Æú´õ°¡ ÀÖ´ÂÁö È®ÀÎÇØ¾ß ÇÕ´Ï´Ù.  ¸¶Âù°¡Áö·Î newLogo ÆÄÀÏÀ» ¾òÀ» ¶§ ¸¶Áö¸· Çà¿¡¼­ ÆÄÀÏÀ» ÀÛ¼ºÇÒ ¶§±îÁö ÇÚµéÀÌ ½ÇÁ¦ ÆÄÀÏÀ» Ç¥½ÃÇÏÁö ¾Ê½À´Ï´Ù.  ÀÌ ¿¹¿¡¼­´Â logo.gif ÄÁÅÙÃ÷·Î ä¿ö ÆÄÀÏÀ» ÀÛ¼ºÇÕ´Ï´Ù.

´ÙÀ½ ½º´ÏÆêÀº ÄÁÅÙÃ÷¿¡¼­ »õ ÆÄÀÏÀ» ÀÛ¼ºÇÏÁö ¾Ê°í ¿ø·¡ ·Î°í¿¡¼­ newLogo ÆÄÀÏÀ» º¹»çÇÑ´Ù´Â °ÍÀ» Á¦¿ÜÇϸé ÀÌÀü ½º´ÏÆê°ú À¯»çÇÕ´Ï´Ù.

IFile logo = imagesFolder.getFile("logo.gif");
if (logo.exists()) {
    IPath newLogoPath = new Path("newLogo.gif");
    logo.copy(newLogoPath, false, null);
    IFile newLogo = imagesFolder.getFile("newLogo.gif");
...
}

¸¶Áö¸·À¸·Î, ¶Ç´Ù¸¥ À̹ÌÁö Æú´õ¸¦ ÀÛ¼ºÇÏ¿© »õ·Î ÀÛ¼ºÇÑ ÆÄÀÏÀ» ±× Æú´õ·Î À̵¿ÇÕ´Ï´Ù. ÆÄÀÏ À̸§À» ¹Ù²ã »õ·Î ÀÛ¼ºÇÑ ÆÄÀÏÀÌ ÀÌÀü ÆÄÀÏÀ» µ¤¾î¾²Áö ¾Êµµ·Ï ÇÕ´Ï´Ù.

...
IFolder newImagesFolder = myWebProject.getFolder("newimages");
newImagesFolder.create(false, true, null);
IPath renamedPath = newImagesFolder.getFullPath().append("renamedLogo.gif");
newLogo.move(renamedPath, false, null);
IFile renamedLogo = newImagesFolder.getFile("renamedLogo.gif");

 

´Ù¼öÀÇ ÀÚ¿ø API ¸Þ¼Òµå¿¡´Â ·ÎÄà ÆÄÀÏ ½Ã½ºÅÛÀÇ ÇØ´ç ÆÄÀϰú µ¿±âÈ­µÇÁö ¾ÊÀº ÀÚ¿ø °»½Å ¿©ºÎ¸¦ ÁöÁ¤ÇÏ´Â force ºÎ¿ï Ç÷¡±×°¡ ÀÖ½À´Ï´Ù.  ÀÚ¼¼ÇÑ Á¤º¸´Â IResource¸¦ ÂüÁ¶ÇϽʽÿÀ.

ÀÚ¿øÀ» µð½ºÅ© À§Ä¡¿¡ ¸ÊÇÎ

»ùÇà ÀÚ¿ø Æ®¸®¿¡¼­, ¸ðµç ÇÁ·ÎÁ§Æ® ÄÁÅÙÃ÷ µð·ºÅ丮°¡ Ç÷§Æû ·çÆ® µð·ºÅ丮(C:\MySDK\workspace) ¾Æ·¡ÀÇ workspace µð·ºÅ丮¿¡ ÀÖ´Ù°í °¡Á¤Çß½À´Ï´Ù. À̰ÍÀº ÇÁ·ÎÁ§Æ®ÀÇ ±âº» ±¸¼ºÀÔ´Ï´Ù.  ±×·¯³ª ÇÁ·ÎÁ§Æ®ÀÇ ÄÁÅÙÃ÷ µð·ºÅ丮¸¦ ÆÄÀÏ ½Ã½ºÅÛ(´Ù¸¥ µð½ºÅ© µå¶óÀ̺ê)ÀÇ ÀÓÀÇÀÇ µð·ºÅ丮¿¡ ´Ù½Ã ¸ÊÇÎÇÒ ¼ö ÀÖ½À´Ï´Ù.

´Ù¸¥ ÇÁ·ÎÁ§Æ®¿¡ µ¶¸³ÀûÀ¸·Î ÇÁ·ÎÁ§Æ® À§Ä¡¸¦ ¸ÊÇÎÇÏ´Â ±â´ÉÀ» »ç¿ëÇÏ¸é »ç¿ëÀÚ°¡ ÇÁ·ÎÁ§Æ® ÄÁÅÙÃ÷¸¦ ÇÁ·ÎÁ§Æ® ¹× ÇÁ·ÎÁ§Æ® ÆÀ¿¡ Àû´çÇÑ À§Ä¡¿¡ ÀúÀåÇÒ ¼ö ÀÖ½À´Ï´Ù. ÇÁ·ÎÁ§Æ®ÀÇ ÄÁÅÙÃ÷ µð·ºÅ丮´Â "°³¹æÀû"À̾î¾ß ÇÕ´Ï´Ù. ÀÌ´Â »ç¿ëÀÚ°¡ Workbench¿Í Ç÷¯±×ÀÎÀ» »ç¿ëÇÏ¿© ¶Ç´Â ÆÄÀÏ ½Ã½ºÅÛ ±â¹ÝÀÇ µµ±¸¿Í ÆíÁý±â¸¦ »ç¿ëÇÏ¿© °£Á¢ÀûÀ¸·Î ÀÚ¿øÀ» ÀÛ¼º, ¼öÁ¤, »èÁ¦ÇÒ ¼ö ÀÖÀ½À» ÀǹÌÇÕ´Ï´Ù.

ÀÚ¿ø °æ·Î À̸§Àº ¿ÏÀüÇÑ ÆÄÀÏ ½Ã½ºÅÛ °æ·Î°¡ ¾Æ´Õ´Ï´Ù. ÀÚ¿ø °æ·Î´Â Ç×»ó ÇÁ·ÎÁ§Æ® À§Ä¡(´ë°³ workspace µð·ºÅ丮)¸¦ ±â¹ÝÀ¸·Î ÇÕ´Ï´Ù.  ÀÚ¿ø¿¡ ´ëÇÑ Àüü ÆÄÀÏ ½Ã½ºÅÛ °æ·Î¸¦ ¾òÀ¸·Á¸é IResource.getLocation()À» »ç¿ëÇÏ¿© À§Ä¡¸¦ Á¶È¸ÇØ¾ß ÇÕ´Ï´Ù.

getLocation()À» »ç¿ëÇÏ¿© À§Ä¡¸¦ Á¶È¸ÇÏ¿© ƯÁ¤ ÀÚ¿øÀÇ ÆÄÀÏ ½Ã½ºÅÛ À§Ä¡¸¦ ÆÇº°ÇÒ ¼ö ÀÖ½À´Ï´Ù.  ±×·¯³ª IProjectDescription.setLocationÀ» »ç¿ëÇÏ¿© À§Ä¡¸¦ º¯°æÇÒ ¼ö´Â ¾ø´Âµ¥, ±× ÀÌÀ¯´Â ÀÌ ¸Þ¼Òµå°¡ µ¥ÀÌÅÍ ±¸Á¶¿¡ ´ëÇÑ ±âº» SetterÀ̱⠶§¹®ÀÔ´Ï´Ù.  

ÀÚ¿ø API ¹× ÆÄÀÏ ½Ã½ºÅÛ

ÀÚ¿ø API¸¦ »ç¿ëÇÏ¿© ÀÛ¾÷°ø°£ÀÇ ÀÚ¿ø Æ®¸®¸¦ ¼öÁ¤ÇÒ °æ¿ì, ÆÄÀÏÀÌ ÆÄÀÏ ½Ã½ºÅÛ¿¡¼­ º¯°æµÇ¸ç ÀÚ¿ø ¿ÀºêÁ§Æ®°¡ °»½ÅµË´Ï´Ù. Ç÷§Æû API ¹Û¿¡¼­ ¹ß»ýÇÏ´Â ÀÚ¿ø ÆÄÀÏ¿¡ ´ëÇÑ º¯°æ»çÇ×Àº ¾î¶»°Ô µÉ±î¿ä?

ÀÚ¿ø¿¡ ´ëÇÑ ¿ÜºÎ º¯°æ»çÇ×Àº ÀÚ¿ø Ç÷¯±×Àο¡ ÀÇÇØ ¹ß°ßµÉ ¶§±îÁö ÀÛ¾÷°ø°£ ¹× ÀÚ¿ø ¿ÀºêÁ§Æ®¿¡ ¹Ý¿µµÇÁö ¾Ê½À´Ï´Ù. Ŭ¶óÀÌ¾ðÆ®´Â ÀÚ¿ø API¸¦ »ç¿ëÇÏ¿© ÀÛ¾÷°ø°£ ¹× ÀÚ¿ø ¿ÀºêÁ§Æ®¸¦ »ç¿ëÀÚÀÇ °³ÀÔ ¾øÀÌ ·ÎÄà ÆÄÀÏ ½Ã½ºÅÛ°ú ÀÏÄ¡½Ãų ¼ö ÀÖ½À´Ï´Ù.  »ç¿ëÀÚ´Â Ç×»ó ¸í½ÃÀûÀ¸·Î WorkbenchÀÇ ÀÚ¿ø ³×ºñ°ÔÀÌÅÍ º¸±â¿¡¼­ »õ·Î °íÄ¡±â¸¦ °­Á¦ ½ÇÇàÇÒ ¼ö ÀÖ½À´Ï´Ù. 

Âü°í: ÀÚ¿ø API¿¡¼­ ´Ù¼öÀÇ ¸Þ¼Òµå¿¡ ÆÄÀÏ ½Ã½ºÅÛ°ú µ¿±âÈ­µÇÁö ¾ÊÀº ÀÚ¿øÀ» ó¸®ÇÏ´Â ¹æ¹ýÀ» ÁöÁ¤ÇÏ´Â force(°­Á¦ ½ÇÇà) ¸Å°³º¯¼ö°¡ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù. °¢ ¸Þ¼Òµå¿¡ ´ëÇÑ API ÂüÁ¶´Â ÀÌ ¸Å°³º¯¼ö¿¡ ´ëÇÑ Æ¯Á¤ Á¤º¸¸¦ Á¦°øÇÕ´Ï´Ù. API¿¡¼­ ±âŸ ¸Þ¼Òµå´Â ÆÄÀÏ ½Ã½ºÅÛ »õ·Î °íÄ¡±â¿¡ ´ëÇÑ ÇÁ·Î±×·¥ Á¦¾î(¿¹: IResource.refreshLocal(int depth, IProgressMonitor monitor)¸¦ Çã¿ëÇÕ´Ï´Ù. ¿Ã¹Ù¸¥ »ç¿ë¹ý°ú ¹®Á¦Á¡¿¡ ´ëÇÑ Á¤º¸´Â IResource¸¦ ÂüÁ¶ÇϽʽÿÀ.