2015-02-27 22:27

在 Eclipse 為 Tomcat Library 增加原始碼附件

在專案目錄下選擇 [Java Resources]->[Libraries]->[Apache Tomcat]->[xxx.jar]->[右鍵內容]


Java 程式碼附件 就可以連接程式原始碼


Javadoc 位置 則可以連接 Javadoc



其實剛剛的設定都記錄在:
{WorkSpace}/.metadata/.plugins/org.eclipse.jst.server.core/
org.eclipse.jst.server.tomcat.runtimeTarget.xml


內容如下:
  1. <?xml version="1.0" encoding="UTF-8" standalone="no"?> 
  2. <classpath> 
  3.  <source-attachment entry="D:/apache-tomcat-7.0.53/lib/commons-io-2.4.jar" runtime-id="Apache Tomcat v7.0" source-attachment-path="D:/apache-tomcat-7.0.53/src/commons-io-2.4-sources.jar"> 
  4.    <attribute name="javadoc_location" value="jar:file:/D:/apache-tomcat-7.0.53/src/commons-io-2.4-javadoc.jar!/"/> 
  5.  </source-attachment> 
  6.  <source-attachment entry="D:/apache-tomcat-7.0.53/lib/commons-logging-1.1.3.jar" runtime-id="Apache Tomcat v7.0" source-attachment-path="D:/apache-tomcat-7.0.53/src/commons-logging-1.1.3-sources.jar"> 
  7.    <attribute name="javadoc_location" value="jar:file:/D:/apache-tomcat-7.0.53/src/commons-logging-1.1.3-javadoc.jar!/"/> 
  8.  </source-attachment> 
  9. </classpath> 


所以只要編寫 org.eclipse.jst.server.tomcat.runtimeTarget.xml 的內容,重新啟動 Eclipse 就會連結原始碼附件,當然這麼麻煩的事還是寫程式自動處理比較快樂,既然是用 Eclipse 寫 Java 當然是用 Ant 來處理是最好的。

首先幾個環境定義:
  • Server Src 路徑:D:/apache-tomcat-7.0.53/src
  • Server Lib 路徑:D:/apache-tomcat-7.0.53/lib
  • Runtime Id:Apache Tomcat v7.0
  • Jar 名稱:xxxxx.jar
  • Source 名稱:xxxxx-sources.jar
  • Javadoc 名稱:xxxxx-javadoc.jar


tomcat-xml-build.xml
  1. <?xml version="1.0" encoding="UTF-8" standalone="no"?> 
  2. <!DOCTYPE project> 
  3. <project name="tomcat-xml-build" default="deploy-output-xml" basedir="."> 
  4.  
  5.    <!-- 載入額外 ant-contrib 定義  [if,not,or,then,equals] --> 
  6.    <taskdef resource="net/sf/antcontrib/antcontrib.properties"/> 
  7.  
  8.    <property name="tomcat.id" value="Apache Tomcat v7.0" /> 
  9.    <property name="tomcat.home" value="D:/apache-tomcat-7.0.53" /> 
  10.    <property name="output.file" value="org.eclipse.jst.server.tomcat.runtimeTarget.xml" /> 
  11.    <basename property="ant.filename" file="${ant.file}" /> 
  12.  
  13.  
  14.    <path id="tomcat.lib"> 
  15.        <fileset dir="${tomcat.home}/lib" includes="*.jar" /> 
  16.    </path> 
  17.  
  18.  
  19.    <target name="build-xml"> 
  20.        <echo>====================================================================</echo> 
  21.        <echo>開始建立 ${output.file}</echo> 
  22.  
  23.        <echo file="${output.file}"><?xml version="1.0" encoding="UTF-8" standalone="no"?> 
  24. <classpath> 
  25. <!-- Code Generate from "${ant.filename}" --></echo> 
  26.  
  27.        <foreach target="loop-jar-file" param="jar-file"> 
  28.            <path refid="tomcat.lib"/> 
  29.        </foreach> 
  30.  
  31.        <echo file="${output.file}" append="true"> 
  32. </classpath></echo> 
  33.  
  34.        <echo>====================================================================</echo> 
  35.        <echo>完成產生 ${output.file}</echo> 
  36.    </target> 
  37.  
  38.  
  39.    <target name="loop-jar-file" if="jar-file"> 
  40.        <echo level="info">${jar-file}</echo> 
  41.  
  42.        <basename property="jar-name" file="${jar-file}" suffix=".jar"/> 
  43.        <if> 
  44.            <or> 
  45.                <available file="${tomcat.home}/src/${jar-name}-sources.jar"/> 
  46.                <available file="${tomcat.home}/src/${jar-name}-javadoc.jar"/> 
  47.            </or> 
  48.            <then> 
  49.                <echo>輸出  ${jar-name}</echo> 
  50.                <echo file="${output.file}" append="true"> 
  51.  <source-attachment entry="${tomcat.home}/lib/${jar-name}.jar" runtime-id="${tomcat.id}" source-attachment-path="${tomcat.home}/src/${jar-name}-sources.jar"> 
  52.    <attribute name="javadoc_location" value="jar:file://${tomcat.home}/src/${jar-name}-javadoc.jar!/"/> 
  53.  </source-attachment></echo> 
  54.            </then> 
  55.        </if> 
  56.    </target> 
  57.  
  58.  
  59.  
  60.    <target name="deploy-output-xml" depends="build-xml"> 
  61.        <echo>====================================================================</echo> 
  62.        <echo>部署 ${output.file} 到 .metadata</echo> 
  63.  
  64.        <eclipse.convertPath resourcepath="workspace_loc:/" property="workspace_loc"/> 
  65.        <copy file="${output.file}" todir="${workspace_loc}/.metadata/.plugins/org.eclipse.jst.server.core" /> 
  66.    </target> 
  67.  
  68.  
  69.    <target name="show-properties"> 
  70.        <echoproperties /> 
  71.    </target> 
  72.  
  73. </project> 


執行前需要 ant-contrib,然後啟動配置必須是[在工作區的同一個 JRE 中執行],這是因為用到 Eclipse Ant 所以提供的環境變數,執行完後重新啟動 Eclipse 就可以看到連結的附件。

0 回應: