Spoon

Spoon是一个开放源代码库,使您可以进行转换(请参见示例 )和分析Java源代码(请参见示例 ). Spoon提供了完整且细粒度的Java元模型,可以在其中读取和修改任何程序元素(类,方法,字段,语句,表达式...). Spoon将作为输入源代码,并生成准备好进行编译的转换后的源代码. Spoon可以集成在MavenGradle中 .

  • 如果您将Spoon用于工业用途,请考虑通过与Inria的研究合同为Spoon提供资金(为此请联系Martin Monperrus).

  • 如果您将Spoon用于学术目的,请引用:Renaud Pawlak,Martin Monperrus,Nicolas Petitprez,Carlos Noguera,Lionel Seinturier. " Spoon:用于实现Java源代码的分析和转换的库 ". 软件:实践与经验,Wiley-Blackwell,2015年.Doi:10.1002 / spe.2346.

@article{pawlak:hal-01169705,
  TITLE = {Spoon: A Library for Implementing Analyses and Transformations of Java Source Code},
  AUTHOR = {Pawlak, Renaud and Monperrus, Martin and Petitprez, Nicolas and Noguera, Carlos and Seinturier, Lionel},
  JOURNAL = {Software: Practice and Experience},
  PUBLISHER = {Wiley-Blackwell},
  PAGES = {1155-1179},
  VOLUME = {46},
  URL = {https://hal.archives-ouvertes.fr/hal-01078532/document},
  YEAR = {2015},
  doi = {10.1002/spe.2346},
  url = {https://hal.archives-ouvertes.fr/hal-01078532/document}
}

Support

要报告错误或提出问题,请在Github上打开一个问题.

News

Github上的Star Spoon: https//github.com/INRIA/spoon . :-)

Download

Jar file

最新版本: https//search.maven.org/remote_content g = fr.inria.gforge.spoon &a = spoon - core &v = LATEST c = jar - with - dependencies - Javadoc

Maven

稳定版:

<dependency>
    <groupId>fr.inria.gforge.spoon</groupId>
    <artifactId>spoon-core</artifactId>
    <version>8.0.0</version>
</dependency>

快照版本:

<dependencies>
    <dependency>
        <groupId>fr.inria.gforge.spoon</groupId>
        <artifactId>spoon-core</artifactId>
        <version>8.1.0-SNAPSHOT</version>
    </dependency>
</dependencies>
<repositories>
    <repository>
      <id>maven.inria.fr-snapshot</id>
      <name>Maven Repository for Spoon Snapshots</name>
      <url>http://maven.inria.fr/artifactory/spoon-public-snapshot</url>
    </repository>
</repositories>

要了解有关Spoon用法的更多信息,可以阅读"用法"部分中的文档.

Contributing

如果您想贡献代码,可以通过在GitHub上进行分叉并发送请求请求来完成.

提交代码时,请尽一切努力遵循现有的约定和样​​式,以保持代码尽可能的可读性. 还请通过运行mvn clean verify确保您的代码可以编译.

License

Spoon是免费和开源的(CeCILL-C许可证-法文等效于LGPL).