如何在eclipse中调试jQassistant
我想详细了解jqassistant的扫描过程。例如,它将扫描所有Jar文件和所有类,或者只扫描我从类中直接引用的一个。要回答这样的问题,调试通常是一个不错的选择。通常情况下,您如何将jqassistant作为maven插件启动。这并不容易。所以我认为最好签出命令行客户端。调试工作正常,但不幸的是,我得到了完全不同的结果。下面是我的参数如何在eclipse中调试jQassistant,eclipse,maven,jqassistant,Eclipse,Maven,Jqassistant,我想详细了解jqassistant的扫描过程。例如,它将扫描所有Jar文件和所有类,或者只扫描我从类中直接引用的一个。要回答这样的问题,调试通常是一个不错的选择。通常情况下,您如何将jqassistant作为maven插件启动。这并不容易。所以我认为最好签出命令行客户端。调试工作正常,但不幸的是,我得到了完全不同的结果。下面是我的参数scan--files${project\u loc:/sze}/target/classes,${project\u loc:/sze}/target/test
scan--files${project\u loc:/sze}/target/classes,${project\u loc:/sze}/target/test classes--storeDirectory c:/trash/neo4j
。输出与maven构建中的相同,它扫描441个类,然后扫描106个类
谁能给我一个提示,命令行呼叫有什么问题吗?或者从一开始回答这个问题的最佳解决方案是什么。我认为最好的选择是调试maven插件,因为这样所有的配置和类路径问题都解决了。这并不像我想的那么复杂。以下步骤解决我的问题:
git克隆https://github.com/buschmais/jqa-maven-plugin.git
并签出一个稳定的版本,例如git checkout-b1.2.0
-Xdebug-Xnoagent-Djava.compile=NONE-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005
作为VM参数远程Java应用程序创建调试配置
,并选择asProject
jqassistant maven plugin
。将连接属性设置为localhost
和5005
ScannerImpl
中设置断点。进一步的好的候选者是ClassFileScannerPlugin
和ClassVisitor
根据我的分析,我可以说,只分析类中的文件和测试类。库中的所有类只能通过引用进入数据库。我想,
org.objectweb.asm.ClassReader
不会简单地忽略不在类路径中的引用。这就是命令行版本找不到这么多元素的原因。Maven插件决定要扫描哪些元素。默认情况下,这些是主构件和测试构件的类文件夹。在这些文件夹中找到的每个.class文件都会触发ClassFileScannerPlugin。此外,scanIncludes选项允许添加更多的文件(例如,额外的src/main/folders)。默认情况下,可以扫描Maven模块的整个文件内容,但这将是一个功能请求。