问题标签 [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.
java - 转换 java 源代码以将注释从 getter 移动到属性
我有大约 300 个 JPA 实体,其中的 getter 使用持久性注释进行注释。我想找到一种方法将所有此类注释移至属性并删除所有 getter 和 setter。我手动为这些课程中的大约 100 个进行了此操作,但这是非常耗时且令人麻木的工作。
我正在研究像Spoon这样的源代码转换工具,但仍然不确定它能否完成我需要它做的事情。
更具体地说,如何转换此代码:
对此:
java - 如何在spoon-maven-plugin 中配置spoon 处理器类路径?
我在 Maven 中运行勺子启动器,但它没有找到处理器类路径。
Maven 调试语句:
调试spoon.Launcher - 模板类路径:[]
INFOspoon.Launcher - Spoon 版本 7.0.0
INFOspoon.Launcher - 运行 Spoon...
INFOspoon.Launcher - 开始处理...
当它到达最后一个语句时,它会冻结并且不会继续超过那个点。
java - 如何使用 Spoon 从 Java 类中删除评论?
我正在使用SequenceR解析我的 Java 代码文件。它使用Spoon
Java 库,这是一个流行的代码分析库。我需要的是,我会给分析器一个错误的行号,它会检测该行并找出它的方法或类,它会删除该类或方法的所有注释。
我已经尝试了几种方法来实现这一点。但无法真正获得所需的输出。
这是我的输入 Java 文件。
我在分析器代码中所做的是 -
输出是这样的 -
如果你仔细看,你会发现只有一条评论被删除了。那是 -
其他评论完好无损。但我需要删除类或方法中的所有注释。我究竟做错了什么?我对勺子完全陌生。任何帮助,将不胜感激。
java - 如何在 Java 中自动执行跟踪关注点
考虑在代码中添加跟踪的常见问题。假设 AspectJ 或 Spring AOP 方法不是您想要做的 - 除了手动添加跟踪之外,还有哪些其他方法是可能的?
据说 Spoon 或 JavaParser 是替代品,欢迎提供任何示例。
试过 AspectJ,它工作得很好,但它的 Maven 插件支持很差 - 试图让提交团队为 Java 9+ 修复它。此外,考虑到当前的 Java 发布速度,我们不知道 AspectJ 将被支持多长时间。
java - 如何使用勺子在 Maven 项目中漂亮地打印生成的源代码?
使用 Factory 创建类后,如何漂亮地打印生成的类源代码?
java - 在 inria Spoon 中构建模型的更快方法
我正在使用inria Spoon解析 Java 项目,然后提取有关类、接口、字段和方法及其所有引用的信息。
我正在使用下面的代码来构建输入项目的模型。
但是,buildModel()在大型项目中非常耗时。
PS:我使用下面的代码使用JavaParser,它比 Spoon 更快。
我想知道是否有更快的方法在 Spoon 中创建 CtModel。
java - 当输入项目文件位于内存中且未保存为磁盘中的文件时,使用 Spoon 构建 AST 模型
我正在使用Spoon Inria来解析和分析 Java 应用程序。目前,我正在使用下面的代码来创建输入项目模型。当项目文件保存在磁盘中时,此代码有效。
但是,目前我在内存中有 Java 文件(类)的内容,我不想将它们写入磁盘,因为它需要很长时间。我想知道是否有一种方法可以使用 Spoon 将文件内容传递给解析器。例如,如下代码。
就像 JDT 中提供的类似解决方案一样。
java - 使用 Spoon 在文档注释中获取非 Javadoc 标记的文本
我想使用 inria-spoon 来处理在文档注释中具有自定义非 Javadoc 标记的 Java 源文件。但是,当 Spoon 处理 Doc 注释时,String
返回的 usingCtMethod#getDocComment()
会将非 Javadoc 标记的文本替换为@unknown
. 我需要保留标签的原始文本以供进一步过滤和处理。
下面的两个类显示了一个示例,其中输出为
并且想要的是
运行的主要方法是类Spooner
,正在处理的源是Carrie.java
。
Spooner.java
:
Carrie.java
:
java - 使用 SPOON 创建匿名类的实例
我需要在 Spoon 中将匿名类的实例作为函数参数传递。在我的情况下,我有一个匿名 Comparator ,我需要将它传递给一个将 Comparator<?> 作为参数的函数。
这是我的代码:
我是 Spoon 的新手,非常感谢您的帮助。
谢谢。
java - 如何在 inria Spoon 中向 CtAnnotation 添加多个值
我正在使用 Spoon 8.2.0 并尝试使用 Spoon 8.3.0 beta 10:在下面的代码中,我尝试向注释添加多个值,但它没有按预期工作。我Summary
在Summary.java中有一个 Java 注释:
在Spooner
Spooner.java 中
annotation.addValue("title", "First Summary")
交换和的顺序annotation.addValue("date", "2020-10-05")
将使其仅title
在注释中显示键和值,并且date
从getAllValues()
.