问题标签 [inria-spoon]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
168 浏览

java - 转换 java 源代码以将注释从 getter 移动到属性

我有大约 300 个 JPA 实体,其中的 getter 使用持久性注释进行注释。我想找到一种方法将所有此类注释移至属性并删除所有 getter 和 setter。我手动为这些课程中的大约 100 个进行了此操作,但这是非常耗时且令人麻木的工作。

我正在研究像Spoon这样的源代码转换工具,但仍然不确定它能否完成我需要它做的事情。

更具体地说,如何转换此代码:

对此:

0 投票
1 回答
172 浏览

java - 如何在spoon-maven-plugin 中配置spoon 处理器类路径?

我在 Maven 中运行勺子启动器,但它没有找到处理器类路径。

Maven 调试语句:

调试spoon.Launcher - 模板类路径:[]
INFOspoon.Launcher - Spoon 版本 7.0.0
INFOspoon.Launcher - 运行 Spoon...
INFOspoon.Launcher - 开始处理...

当它到达最后一个语句时,它会冻结并且不会继续超过那个点。

0 投票
1 回答
161 浏览

java - 如何使用 Spoon 从 Java 类中删除评论?

我正在使用SequenceR解析我的 Java 代码文件。它使用SpoonJava 库,这是一个流行的代码分析库。我需要的是,我会给分析器一个错误的行号,它会检测该行并找出它的方法或类,它会删除该类或方法的所有注释。

我已经尝试了几种方法来实现这一点。但无法真正获得所需的输出。

这是我的输入 Java 文件。

我在分析器代码中所做的是 -

输出是这样的 -

如果你仔细看,你会发现只有一条评论被删除了。那是 -

其他评论完好无损。但我需要删除类或方法中的所有注释。我究竟做错了什么?我对勺子完全陌生。任何帮助,将不胜感激。

0 投票
1 回答
98 浏览

java - 如何在 Java 中自动执行跟踪关注点

考虑在代码中添加跟踪的常见问题。假设 AspectJ 或 Spring AOP 方法不是您想要做的 - 除了手动添加跟踪之外,还有哪些其他方法是可能的?

据说 Spoon 或 JavaParser 是替代品,欢迎提供任何示例。

试过 AspectJ,它工作得很好,但它的 Maven 插件支持很差 - 试图让提交团队为 Java 9+ 修复它。此外,考虑到当前的 Java 发布速度,我们不知道 AspectJ 将被支持多长时间。

0 投票
1 回答
106 浏览

java - 如何使用勺子在 Maven 项目中漂亮地打印生成的源代码?

使用 Factory 创建类后,如何漂亮地打印生成的类源代码?

0 投票
1 回答
161 浏览

java - 在 inria Spoon 中构建模型的更快方法

我正在使用inria Spoon解析 Java 项目,然后提取有关类、接口、字段和方法及其所有引用的信息。

我正在使用下面的代码来构建输入项目的模型。

但是,buildModel()在大型项目中非常耗时。

PS:我使用下面的代码使用JavaParser,它比 Spoon 更快。

我想知道是否有更快的方法在 Spoon 中创建 CtModel。

0 投票
1 回答
133 浏览

java - 当输入项目文件位于内存中且未保存为磁盘中的文件时,使用 Spoon 构建 AST 模型

我正在使用Spoon Inria来解析和分析 Java 应用程序。目前,我正在使用下面的代码来创建输入项目模型。当项目文件保存在磁盘中时,此代码有效。

但是,目前我在内存中有 Java 文件(类)的内容,我不想将它们写入磁盘,因为它需要很长时间。我想知道是否有一种方法可以使用 Spoon 将文件内容传递给解析器。例如,如下代码。

就像 JDT 中提供的类似解决方案一样。

0 投票
1 回答
62 浏览

java - 使用 Spoon 在文档注释中获取非 Javadoc 标记的文本

我想使用 inria-spoon 来处理在文档注释中具有自定义非 Javadoc 标记的 Java 源文件。但是,当 Spoon 处理 Doc 注释时,String返回的 usingCtMethod#getDocComment()会将非 Javadoc 标记的文本替换为@unknown. 我需要保留标签的原始文本以供进一步过滤和处理。

下面的两个类显示了一个示例,其中输出为

并且想要的是

运行的主要方法是类Spooner,正在处理的源是Carrie.java

Spooner.java

Carrie.java

0 投票
1 回答
255 浏览

java - 使用 SPOON 创建匿名类的实例

我需要在 Spoon 中将匿名类的实例作为函数参数传递。在我的情况下,我有一个匿名 Comparator ,我需要将它传递给一个将 Comparator<?> 作为参数的函数。

这是我的代码:

我是 Spoon 的新手,非常感谢您的帮助。

谢谢。

0 投票
0 回答
85 浏览

java - 如何在 inria Spoon 中向 CtAnnotation 添加多个值

我正在使用 Spoon 8.2.0 并尝试使用 Spoon 8.3.0 beta 10:在下面的代码中,我尝试向注释添加多个值,但它没有按预期工作。我SummarySummary.java中有一个 Java 注释:

Spooner Spooner.java 中

annotation.addValue("title", "First Summary")交换和的顺序annotation.addValue("date", "2020-10-05")将使其仅title在注释中显示键和值,并且dategetAllValues().