一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Eclipse中.setting目錄下文件介紹

 戴維圖書館 2020-03-29

一. 前言

雖然現(xiàn)在用IDEA好久不用看eclipse了。

剛剛看同事提交了一個(gè)配置文件,好奇搜了搜。

https://www.cnblogs.com/shihaiming/p/5803957.html

以防原作者刪除文章,在這貼一下

 

Eclipse在新建項(xiàng)目的時(shí)候會自動生成一些文件。這些文件比如.project、.classpath、.settings目錄下的所有文件等。這些文件是Eclipse項(xiàng)目的元數(shù)據(jù),描述了一個(gè)Eclipse項(xiàng)目。

通常這些文件里的內(nèi)容可以通過配置具體Eclipse項(xiàng)目的Properties來進(jìn)行修改,而且普通用戶無需知道這些文件具體的用處,但是本著探究問題本質(zhì)的態(tài)度,我們不妨可以了解一下這些文件及內(nèi)容具體是干什么用的。當(dāng)熟悉了這些文件的內(nèi)容后,往往在項(xiàng)目配置中可以直接查看和修改文件內(nèi)容,可以起到事半功倍的效果。

二. 項(xiàng)目根目錄下的文件

Eclipse項(xiàng)目根目錄下通常有兩個(gè)文件:.project和.classpath,.project是Eclipse項(xiàng)目必須有的文件,而.classpath是Java項(xiàng)目必須有的文件。這兩個(gè)文件均是XML格式的文本文件,用普通文本編輯器即可打開。

1. 文件:.project

.project描述了一個(gè)Eclipse項(xiàng)目。

典型內(nèi)容

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <projectDescription>
  3. <!-- name里的內(nèi)容代表項(xiàng)目名字,對應(yīng)了Eclipse項(xiàng)目的名稱,不是Maven的finalName -->
  4. <name>demo</name>
  5. <!-- 項(xiàng)目的注釋 -->
  6. <comment></comment>
  7. <!-- 引用的項(xiàng)目的名字 -->
  8. <projects>
  9. </projects>
  10. <!-- 有序的列表,定義了一系列的構(gòu)建命令(buildCommand) -->
  11. <buildSpec>
  12. <buildCommand>
  13. <!-- 項(xiàng)目構(gòu)建命令的名字 -->
  14. <name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
  15. <!-- 構(gòu)建命令初始化時(shí)需要傳遞的參數(shù)(一般看到的都是空的) -->
  16. <arguments>
  17. </arguments>
  18. </buildCommand>
  19. <buildCommand>
  20. <name>org.eclipse.jdt.core.javabuilder</name>
  21. <arguments>
  22. </arguments>
  23. </buildCommand>
  24. <buildCommand>
  25. <name>org.eclipse.wst.common.project.facet.core.builder</name>
  26. <arguments>
  27. </arguments>
  28. </buildCommand>
  29. <buildCommand>
  30. <name>org.eclipse.m2e.core.maven2Builder</name>
  31. <arguments>
  32. </arguments>
  33. </buildCommand>
  34. </buildSpec>
  35. <!-- 項(xiàng)目中用到的一些特性的列表 -->
  36. <natures>
  37. <!-- 每一個(gè)特性的的名字 -->
  38. <nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
  39. <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
  40. <nature>org.eclipse.jdt.core.javanature</nature>
  41. <nature>org.eclipse.m2e.core.maven2Nature</nature>
  42. <nature>org.eclipse.wst.common.project.facet.core.nature</nature>
  43. <nature>org.eclipse.wst.jsdt.core.jsNature</nature>
  44. </natures>
  45. </projectDescription>

使用示例

  1. Maven項(xiàng)目的配置

    一個(gè)Maven項(xiàng)目要確保有如下的內(nèi)容,如果沒有,可以手工加上下面的BuildCommand和natures:

    1. <projectDescription>
    2. <buildSpec>
    3. <buildCommand>
    4. <name>org.eclipse.m2e.core.maven2Builder</name>
    5. <arguments>
    6. </arguments>
    7. </buildCommand>
    8. </buildSpec>
    9. <natures>
    10. <nature>org.eclipse.m2e.core.maven2Nature</nature>
    11. </natures>
    12. </projectDescription>
  2. 禁止Javascript的正確性校驗(yàn)

    其實(shí)禁止正確性校驗(yàn)是一個(gè)不好的習(xí)慣,但很多人有這樣的需求(唐僧:配置一下exclude路徑多好啊,即能進(jìn)行正確性校驗(yàn)又不會太影響速度),這里給出方案。刪除如下的buildCommand即可,也可選擇性的刪除如下的nature:

    1. <buildCommand>
    2. <name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
    3. <arguments>
    4. </arguments>
    5. </buildCommand>
    6. <natures>
    7. <nature>org.eclipse.wst.jsdt.core.jsNature</nature>
    8. </natures>
  3. 把一個(gè)Java項(xiàng)目變?yōu)閐ynamic web項(xiàng)目

    加入如下的buildSpec、nature元素即可:

    1. <buildSpec>
    2. <buildCommand>
    3. <name>org.eclipse.wst.common.project.facet.core.builder</name>
    4. <arguments>
    5. </arguments>
    6. </buildCommand>
    7. </buildSpec>
    8. <natures>
    9. <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
    10. <nature>org.eclipse.wst.common.project.facet.core.nature</nature>
    11. </natures>

拷貝攻略

.project文件可以從同類型的項(xiàng)目中直接拷貝,但需要修改/projectDescription/name里的項(xiàng)目名稱。

參考資料

The project description file

2. 文件:.classpath

.classpath描述了一個(gè)Eclipse項(xiàng)目。

典型內(nèi)容

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <classpath>
  3. <!-- 含義:src/main/java屬于源碼,編譯后放到target/classes目錄下 -->
  4. <classpathentry kind="src" output="target/classes" path="src/main/java">
  5. <attributes>
  6. <attribute name="optional" value="true"/>
  7. <attribute name="maven.pomderived" value="true"/>
  8. </attributes>
  9. </classpathentry>
  10. <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
  11. <attributes>
  12. <!-- 代表了配置是從POM.xml里來的,受maven管理,非maven項(xiàng)目可以去掉這個(gè) -->
  13. <attribute name="maven.pomderived" value="true"/>
  14. </attributes>
  15. </classpathentry>
  16. <!-- 這里的including代表了目錄下所有.java文件才會被處理,其他文件一概忽略,不會出現(xiàn)在target/test-classes目錄下 -->
  17. <classpathentry including="**/*.java" kind="src" output="target/test-classes" path="src/test/java">
  18. <attributes>
  19. <attribute name="optional" value="true"/>
  20. <attribute name="maven.pomderived" value="true"/>
  21. </attributes>
  22. </classpathentry>
  23. <classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources">
  24. <attributes>
  25. <attribute name="maven.pomderived" value="true"/>
  26. </attributes>
  27. </classpathentry>
  28. <!-- 這里代表使用標(biāo)準(zhǔn)的JavaSE-1.7 JDK,相比來說如果用default和直接寫當(dāng)前系統(tǒng)中安裝的JDK是不推薦的 -->
  29. <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7">
  30. <attributes>
  31. <attribute name="maven.pomderived" value="true"/>
  32. </attributes>
  33. </classpathentry>
  34. <!-- 代表了Maven中的dependencies也都放到classpath里 -->
  35. <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
  36. <attributes>
  37. <attribute name="maven.pomderived" value="true"/>
  38. <!-- web工程中把依賴的jar都放到輸出的webapp里/WEB-INF/lib下面 -->
  39. <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
  40. </attributes>
  41. </classpathentry>
  42. <!-- -->
  43. <classpathentry kind="con" path="org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/Apache-Tomcat v7.0">
  44. <attributes>
  45. <attribute name="owner.project.facets" value="jst.web"/>
  46. </attributes>
  47. </classpathentry>
  48. <!-- 統(tǒng)一的輸出為target/classes -->
  49. <classpathentry kind="output" path="target/classes"/>
  50. </classpath>

使用示例

  1. 項(xiàng)目有test/resources或test/java目錄,但是不識別為classpath

    酌情加入如下的classpathentry:

    1. <classpathentry including="**/*.java" kind="src" output="target/test-classes" path="src/test/java" />
    2. <classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources" />
  2. 項(xiàng)目是maven工程,但是構(gòu)建路徑貌似怎么也配置不對

    Maven是約定優(yōu)于配置(convention over configuration)的,但是.classpath是配置型的,一般不會出現(xiàn)這種情況,如果出現(xiàn)了,檢查maven約定的類路徑(比如src/main/java、org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER)中是否有如下的元素:

    1. <attributes>
    2. <attribute name="maven.pomderived" value="true"/>
    3. </attributes>
  3. Maven的依賴jar文件放不到/WEB-INF/lib里

    確認(rèn)或加入如下的配置:

    1. <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
    2. <attributes>
    3. <attribute name="maven.pomderived" value="true"/>
    4. <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
    5. </attributes>
    6. </classpathentry>
  4. 界面配置方法

在項(xiàng)目Properties配置界面中,具體位置參考下圖:

.classpath的界面配制方法

  1. 可移植的JDK配置

JDK配置

拷貝攻略

.classpath文件可以從同類型的項(xiàng)目中直接拷貝,有些目錄沒有的話,注意刪掉對應(yīng)的classpathentry,其他基本無需修改,如果有問題再考慮去改。但如果從別人的機(jī)器里拷貝,需要關(guān)注三點(diǎn):

  1. Java SDK的配置:如果Java SDK類型設(shè)置的是配置界面中的“Alternate JRE”,那么除非自己機(jī)器上裝了對方機(jī)器名字一樣的JDK(不是類型或者版本,而是Installed JREs配置中的名字),否則就需要修改JDK的配置。推薦使用配置界面中的“Execution Environment”來配置,避免綁定具體的JDK版本和實(shí)現(xiàn),如<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7" />

  2. 如果Web項(xiàng)目使用了Web容器且綁定了project facet,那么就需要考慮Web容器配置的問題了,以Apache-tomcat為例,需要增加<classpathentry kind="con" path="org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/Apache-Tomcat v7.0" />,而"Apache-Tomecat v7.0"字符串需要與Eclipse Preferences里Server/Runtime Environments里的name一列保持一致。

參考資料

JDK為什么建議配置成Execution Environment

三. /.settings目錄下的文件

Eclipse項(xiàng)目.settings目錄下的配置比較雜,各種后綴名的都可以見到,絕大多數(shù)是文本文件,格式為properties(多數(shù)以.prefs為后綴名)或XML(多數(shù)以.*、.xml為文件名)格式的為主。下面挨個(gè)講一些典型的文件。

1. 文件:.jsdtscope

.jsdtscope文件定義了web項(xiàng)目中的源碼路徑,也就意味著只有web project才會有這個(gè)配置。這些源碼Eclipse會進(jìn)行validate(如果validate沒有禁用)。這個(gè)文件在實(shí)際開發(fā)中最大的價(jià)值在于定義JS文件的例外路徑,在配置界面中配置的話挨個(gè)選很煩人。

典型內(nèi)容

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <classpath>
  3. <classpathentry excluding="**/*.min.js|**/bower_components/*|**/custom/*|**/node_modules/*|**/target/**|**/vendor/*" kind="src" path="src/main/webapp"/>
  4. <classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.JRE_CONTAINER"/>
  5. <classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.WebProject">
  6. <attributes>
  7. <attribute name="hide" value="true"/>
  8. </attributes>
  9. </classpathentry>
  10. <classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.baseBrowserLibrary"/>
  11. <classpathentry kind="output" path=""/>
  12. </classpath>

使用示例

  1. 配置JS的例外(一般用于讓Eclipse不校驗(yàn)第三方JS文件,避免開啟JS校驗(yàn)后Eclipse假死)

在.jsdtscope文件的<classpathentry kind="src" path="src/main/webapp"/>增加excluding屬性,寫法見“典型內(nèi)容”一節(jié)。

  1. 界面配置方法

這一部分在Eclipse不同版本里不一樣,Eclipse 4.5及以后版本可以參考下面的配置,4.4.X版本(更早的版本沒有考證)只能配置到具體項(xiàng)目中,不能全局配置。若針對具體項(xiàng)目配置,配置界面在項(xiàng)目的properties里的如下位置:

.classpath的界面配制方法

若全局進(jìn)行配置,在Window/Preferences/JavaScript/Include Path中進(jìn)行配置,如下圖:

.classpath的界面配制方法

拷貝攻略

.jsdtscope文件可以從同類型的項(xiàng)目中直接拷貝,基本無需修改。

2. 文件:org.eclipse.core.resources.prefs

org.eclipse.core.resources.prefs文件其實(shí)就是規(guī)定項(xiàng)目內(nèi)的文件的編碼用的。一般來說一個(gè)項(xiàng)目里的文件編碼需要一致,特別是文件文本內(nèi)容本身無法指示文件本身編碼的(比較繞,XML文件第一行能指示自身編碼,CSS也有這個(gè)能力但用得不多),盡量不要多種編碼同時(shí)存在(最好在編碼規(guī)范中禁止多重編碼同時(shí)存在的現(xiàn)象發(fā)生)。

典型內(nèi)容

  1. eclipse.preferences.version=1
  2. encoding//src/main/java=UTF-8
  3. encoding//src/main/resources=UTF-8
  4. encoding//src/test/java=UTF-8
  5. encoding//src/test/resources=UTF-8
  6. encoding/<project>=UTF-8

使用示例

一般正常的項(xiàng)目打開后,應(yīng)該看到是統(tǒng)一的編碼,如果存在例外,可以對例外的文件進(jìn)行轉(zhuǎn)碼,然后刪除這個(gè)文件中例外的那一行。

拷貝攻略

org.eclipse.core.resources.prefs文件可以從同類型的項(xiàng)目中直接拷貝,無需修改。

3. 文件:org.eclipse.jdt.core.prefs

org.eclipse.jdt.core.prefs文件指定了一些Java編譯的特性,比如Java版本之類的,看文件每一行的key能猜出具體的用處。

典型內(nèi)容

  1. eclipse.preferences.version=1
  2. org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
  3. org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
  4. org.eclipse.jdt.core.compiler.compliance=1.7
  5. org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
  6. org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
  7. org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
  8. org.eclipse.jdt.core.compiler.source=1.7

使用示例

如果項(xiàng)目中源文件版本不正確,編譯出來的目標(biāo)版本不對,那么可以在這里進(jìn)行修改。界面中修改的話,可以參考:

.classpath的界面配制方法

拷貝攻略

org.eclipse.jdt.core.prefs文件可以從同類型的項(xiàng)目中直接拷貝,無需修改。

4. 文件:org.eclipse.m2e.core.prefs

org.eclipse.m2e.core.prefs是一些maven相關(guān)的配置。

典型內(nèi)容

  1. eclipse.preferences.version=1
  2. activeProfiles=dev
  3. resolveWorkspaceProjects=true
  4. version=1

使用示例

一般在Maven項(xiàng)目開發(fā)時(shí)和生產(chǎn)環(huán)境中配置不一樣,可以在pom.xml中指定不同的profile來實(shí)現(xiàn),Eclipse項(xiàng)目開發(fā)時(shí)指定profile的話(比如指定名叫dev的profile),就可以配置這個(gè)文件的activeProfiles屬性。如果在界面中配置,在這里:

.classpath的界面配制方法

拷貝攻略

org.eclipse.m2e.core.prefs文件可以從同類型的項(xiàng)目中直接拷貝,無需修改。

5. 文件:org.eclipse.wst.common.component

org.eclipse.wst.common.component文件規(guī)定了項(xiàng)目怎么組裝成一個(gè)webapp,這里可以玩很多種組裝方式。

典型內(nèi)容

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project-modules id="moduleCoreId" project-version="1.5.0">
  3. <wb-module deploy-name="inkfish-web">
  4. <wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/>
  5. <wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>
  6. <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
  7. <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
  8. <property name="context-root" value="inkfish-web"/>
  9. <property name="java-output-path" value="/inkfish-web/target/classes"/>
  10. </wb-module>
  11. </project-modules>

使用示例

在某些項(xiàng)目中,從遠(yuǎn)程maven倉庫下載zip組件(當(dāng)然war組件最好,是maven自帶支持的)解壓并放到target,作為webapp一部分,就可以在這里修改組裝webapp的方式。如果在界面中配置,在這里:

.classpath的界面配制方法

拷貝攻略

org.eclipse.wst.common.component文件不可直接拷貝,如需拷貝注意修改deploy-name、某些value等一些與項(xiàng)目名稱相關(guān)的信息。

6. 文件:org.eclipse.wst.common.project.facet.core.xml

org.eclipse.wst.common.project.facet.core.xml指示了項(xiàng)目中啟用那些facet及facet的版本。

典型內(nèi)容

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <faceted-project>
  3. <runtime name="Apache Tomcat v8.0"/>
  4. <fixed facet="wst.jsdt.web"/>
  5. <installed facet="wst.jsdt.web" version="1.0"/>
  6. <installed facet="java" version="1.7"/>
  7. <installed facet="jst.web" version="3.1"/>
  8. </faceted-project>

使用示例

界面配置在下面的位置:

.classpath的界面配制方法

在實(shí)際使用中有時(shí)候在Eclipse的facet配置了以后又恢復(fù)回去了,總是配不成功,那么就可以直接修改這個(gè)文件。常見的比如servlet版本不匹配,那么就可以修改jst.web這個(gè)facet的version,如果java版本不對,那么可以修改java這個(gè)facet的version。

拷貝攻略

org.eclipse.wst.common.project.facet.core.xml文件可以從同類型的項(xiàng)目中直接拷貝,基本無需修改。

7. 文件:org.eclipse.wst.jsdt.ui.superType.container

使用不多,無研究,略去。

典型內(nèi)容

org.eclipse.wst.jsdt.launching.baseBrowserLibrary

或者也見過

org.eclipse.wst.jsdt.launching.JRE_CONTAINER

拷貝攻略

org.eclipse.wst.jsdt.ui.superType.container文件可以在項(xiàng)目間項(xiàng)目直接拷貝,無需修改。

8. 文件:org.eclipse.wst.jsdt.ui.superType.name

使用不多,無研究,略去。

典型內(nèi)容

Window

或者也見過

Global

拷貝攻略

org.eclipse.wst.jsdt.ui.superType.name文件可以在項(xiàng)目間項(xiàng)目直接拷貝,無需修改。

9. 文件:org.eclipse.wst.validation.prefs

使用不多,無研究,略去。

典型內(nèi)容

  1. disabled=06target
  2. eclipse.preferences.version=1

拷貝攻略

org.eclipse.wst.validation.prefs文件可以在項(xiàng)目間項(xiàng)目直接拷貝,無需修改。

四. 寫在后面

有的配置是前后關(guān)聯(lián)的,不是調(diào)整一個(gè)配置文件就能完事的,比如修改web工程里的Java版本,可能需要修改好幾個(gè)配置文件。

這篇文章主要介紹了Eclipse項(xiàng)目中常見的自動生成的文件,這些文件都可以通過界面配置來修改,如果大量項(xiàng)目同時(shí)修改感覺界面配置比較麻煩,或者純粹是極客類型的,可以學(xué)習(xí)這些配置文件的內(nèi)容。普通程序員只需要了解有這么個(gè)東西,出了一些界面上配置失靈的情況,可以直接修改文件。

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    久久99青青精品免费观看| 中文字幕人妻一区二区免费| 欧美日韩成人在线一区| 亚洲婷婷开心色四房播播| 色哟哟精品一区二区三区| 开心五月激情综合婷婷色| 欧美日韩国产亚洲三级理论片| 黄片免费在线观看日韩| 国产精品国产亚洲看不卡| 欧美日韩精品综合一区| 国产中文字幕久久黄色片| 国产在线日韩精品欧美| 亚洲内射人妻一区二区| 国产成人高清精品尤物| 女厕偷窥一区二区三区在线| 亚洲天堂精品一区二区| 五月婷婷亚洲综合一区| 亚洲高清中文字幕一区二区三区| 日韩中文字幕欧美亚洲| 亚洲中文字幕视频在线观看| 99日韩在线视频精品免费| 成人精品欧美一级乱黄| 性感少妇无套内射在线视频| 日韩精品在线观看一区| 99精品人妻少妇一区二区人人妻| 午夜福利直播在线视频| 十八禁日本一区二区三区| 久热99中文字幕视频在线| 国产精品成人一区二区在线| 亚洲日本加勒比在线播放 | 一区中文字幕人妻少妇| 国产又粗又爽又猛又黄的 | 中文字幕在线五月婷婷| 深夜少妇一区二区三区| 中文字幕日韩欧美亚洲午夜| 午夜福利直播在线视频| 国产成人精品国产亚洲欧洲| 国产精品亚洲一级av第二区| 国产老熟女乱子人伦视频| 国产免费观看一区二区| 五月婷婷综合缴情六月|