解析Myeclipse項目下的.classpath文件

  <classpathentry kind="src" path="src"/>  
  <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>  
  <classpathentry kind="con" path="melibrary.com.genuitec.eclipse.j2eedt.core.MYECLIPSE_JAVAEE_5_CONTAINER"/>  
  <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/bsf-2.3.0.jar"/>  
  <classpathentry kind="output" path="WebRoot/WEB-INF/classes"/>
  
1. <classpath kind="src" path="src"> 對應的是source folder類型的目錄,
    kind---表示這個classpath的類型,path表示在項目中的路徑,
    path使用根目錄的相對路徑(相對.classpath文件自己的相對路徑) ,
    myeclipse項目中的src自己就是一個source folder,因此它會自動寫入這個文件中,
    若是本身手動創建了一個source folder,這個folder也會寫入這個文件,
    形式就是以上形式eg.在項目基礎上新建一個test的source folder,
    就會就會成爲這樣:
    <classpathentry kind="src" path="src"/>
    <classpathentry kind="src" path="test"/></pre><br>  
 
2.  <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> 
    這句是表示程序的運行環境 kind="con"---表示classpath的類型,
    con便是container,就是程序運行的容器,或者就說是運行環境也OK,
    它其實是在Myeclipse最初的時候要配置installed JREs中指定(通常狀況下咱們指定的是JDK),
    可是這裏實際使用的是JDK下的JRE中的jar包,就是JDK_HOME/jre/lib就是對應的這條語句  

3.  <classpathentry kind="con" path="melibrary.com.genuitec.eclipse.j2eedt.core.MYECLIPSE_JAVAEE_5_CONTAINER"/>  
    這句是kind="con"固然和上條同樣,是表示運行時的容器,
    通常狀況下是java web項目纔會有,它是包含了J2EE服務器要使用到的一些jar包,
    這個目錄中的jar包是其中最特殊的,那就是它不會在部署項目的時候部署到服務器上去,
    由於myeclipse認爲這樣的jar包是服務器應該有的,因此這裏有時候會出現問題,
    就是開發的時候不出現問題,可是部署以後會出錯,就是有的服務器有的jar包並無提供,
    好比tomcat(由於tomcat並非專業的web服務器,它只是一個輕量的web容器),這就要區分好開發環境和運行環境  
 
4.  <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/bsf-2.3.0.jar"/>  
    這條語句kind="lib",對應的是classpath中的庫文件,path指定庫文件的路徑,
    一樣是相對與項目根目錄的相對路徑  

5.  <classpathentry kind="output" path="WebRoot/WEB-INF/classes"/> 
    這條表示項目的輸出目錄,整個以前定義的classpath不管是kind='src",kind="con",kind="lib",
    在編譯後都會進入到這個目錄中來,在java web中也就是WebRoot/WEB-INF/classes。
    一樣使用的path是相對項目根目錄的相對路徑(相對.classpath文件自己的相對路徑),
    可是因爲J2EE部分的是自己要求web 服務器自己要有那些jar包,因此那個例外不會進行拷貝  

classpath是myeclipse重要文件,在進行相關的查找時候要用到
項目根目錄下的".classpath「文件就是保存項目classpath的文件
文件中的 <classpath>... ...</classpath>之間保存各類classpath信息,
kind表示類型,path表示路徑,且使用的都是相對於」.classpath「或者說是項目根目錄的相對路徑 

幾種kind的含義
kind=」src" ----對應source folder目錄
kind="con"--項目的容器,通常當是java web項目的時候會有兩個
kind="lib"---項目中使用到的庫文件
kind='output"--輸出目錄,最終編譯後相關文件的目標目錄,myeclipse會自動完成相關的拷貝 
最終對於myeclipse的classpath的管理都是經過這個文件實現
View Code

 

myeclipse項目中的.classpath文件:
<?xml version=」1.0」 encoding=」UTF-8」?>
<classpath>
<!-- 源碼目錄 -->
<classpathentry kind=」src」 path=」src」/>
<!-- JDK運行時容器 -->
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="melibrary.com.genuitec.eclipse.j2eedt.core.MYECLIPSE_JAVAEE_5_CONTAINER"/>
<!-- 如下爲類庫path爲你自定義的目錄,jar文件的路徑 -->
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/sino-base-1.3.2.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/sino-bms-1.4.3.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/sino-frame-1.2.2.jar"/>
<!-- 編譯後輸出class目錄 -->
<classpathentry kind="output" path="WebRoot/WEB-INF/classes"/>
</classpath>

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

.project文件:

<?xml version=」1.0」 encoding=」UTF-8」?>
<projectDescription>
<!-- 工程名稱 這裏定義的name的值若是已經工做空間的其餘項目佔用了,
當使用myeclipse的import功能導入項目時,就會導不進來-->
<name>sxVIP</name>
<comment></comment>
<projects></projects>
<!-- 編譯器指定-->
<buildSpec>
    <buildCommand>
        <name>org.eclipse.wst.common.project.facet.core.builder</name>
        <arguments>
        </arguments>
    </buildCommand>
</buildSpec>
<!-- 核心特性 -->
<natures>
    <nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
    <nature>com.genuitec.eclipse.ast.deploy.core.deploymentnature</nature>
    <nature>com.genuitec.eclipse.j2eedt.core.webnature</nature>
</natures>
</projectDescription>

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

對於myeclipse工程多了一個(web 應用程序纔有)

.mymetadata文件:

<?xml version=」1.0」 encoding=」UTF-8」?>
<!--
type : 工程類型              
name : 工程名稱           
id : 工程在工做空間內的惟一標識
context-root : 網站根路徑    
j2ee-spec: J2EE標準       
archive : 打包後war文件
-->

<project-module
type=」WEB」
name=」upload」
id=」myeclipse.1152954865843」
context-root=」/upload」
j2ee-spec=」1.4」
archive=」upload.war」>
<attributes>
    <!-- value : Web根目錄名稱 -->
    <attribute name=」webrootdir」 value=」WebRoot」 />
</attributes>
</project-module> 
View Code

 當爲myeclipse的項目修改部署的名字時,java

.mymetedata文件中的context-root的值會相應的變化web

相關文章
相關標籤/搜索