2011-02-05 99 views
25

關於maven-compiler-plugin。有一個設置添加到我的項目的POM文件。配置如下。什麼是endorseddirs以及它如何在應用程序中使用?

<plugins> 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-compiler-plugin</artifactId> 
     <version>2.3.2</version> 
     <configuration> 
      <source>1.6</source> 
      <target>1.6</target> 
      <compilerArguments> 
       <endorseddirs>${endorsed.dir}</endorseddirs> 
      </compilerArguments> 
     </configuration> 
    </plugin> 
</plugins> 

在編譯器參數中有<endorseddirs>是什麼意思?它如何與java編譯器一起工作?

回答

16

Endorsed Standards Override Mechanism的文件,它是一個機制,提供newer versions of an endorsed standard than those included in the Java 2 Platform

你的項目必須創建和/或使用這樣的實現。

通過指定<endorseddirs>屬性,您正在指示java編譯器查看此文件夾中存在的jars以覆蓋標準jdk中類似定義的類。

+0

上面的鏈接現在已被打破。我們可以按照以下步驟操作:http://docs.oracle.com/javase/8/docs/technotes/guides/standards/ – mcoolive 2014-09-08 12:51:30

6

通過Java documentation,java.endorsed.dirs用於提供支持標準覆蓋機制。也就是說,用戶可以提供比JDK提供的軟件包更新的版本。如果在java.endorsed.dirs指定的目錄中有這些包的更新實現,那麼這些實現將被加載,而不是JDK附帶的默認實現。

可以用這種方式重寫的軟件包被分組到標準API和獨立技術中,並在Java文檔中列出。

粗略地講簽名標準的API包括:

  • 的javax.rmi.CORBA
  • 各種org.omg *包
  • org.w3c.dom中
  • 各種org.xml.sax中的。*包

獨立技術包括:

  • 的Java API用於XML處理(JAXP),1.4版
  • Java體系XML綁定(JAXB),2.0版
  • 的Java API基於XML的Web服務(JAX-WS)2.0版
  • Java編譯器API,1.0版
  • 可插拔註釋處理API,1.0版
  • 針對Java平臺的公共註釋,版本1.0
  • 腳本的Java平臺,版本1.0
  • 帶附件API的SOAP(SAAJ)1.3版
相關問題