2011-02-05 78 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版
相关问题