在使用spoon分析Hadoop这样的大项目的源代码时,经常会出现“已经定义了xxx类型”的问题,因为不同的子项目中可能存在具有相同类名和相同包目录的Java类。
当我运行“java-cp xx spoon.launcher-I~/hadoop-0.23.3-src/-p myspoon.catchprocessor”时,出现了以下错误。
Exception in thread "main" spoon.compiler.ModelBuildingException: The type JobInProgress is already defined
at spoon.support.compiler.jdt.JDTBasedSpoonCompiler.reportProblem(JDTBasedSpoonCompiler.java:550)
at spoon.support.compiler.jdt.TreeBuilderRequestor.acceptResult(TreeBuilderRequestor.java:37)
at spoon.support.compiler.jdt.TreeBuilderCompiler.buildUnits(TreeBuilderCompiler.java:73)
at spoon.support.compiler.jdt.JDTBatchCompiler.getUnits(JDTBatchCompiler.java:120)
at spoon.support.compiler.jdt.JDTBasedSpoonCompiler.buildUnits(JDTBasedSpoonCompiler.java:410)
at spoon.support.compiler.jdt.JDTBasedSpoonCompiler.buildUnitsAndModel(JDTBasedSpoonCompiler.java:372)
at spoon.support.compiler.jdt.JDTBasedSpoonCompiler.buildSources(JDTBasedSpoonCompiler.java:348)
at spoon.support.compiler.jdt.JDTBasedSpoonCompiler.build(JDTBasedSpoonCompiler.java:119)
at spoon.support.compiler.jdt.JDTBasedSpoonCompiler.build(JDTBasedSpoonCompiler.java:102)
at spoon.Launcher.buildModel(Launcher.java:700)
at spoon.Launcher.run(Launcher.java:651)
at spoon.Launcher.run(Launcher.java:106)
at spoon.Launcher.main(Launcher.java:99)
我发现在同一个子项目“Hadoop-MapReduce-Project”中有两个jobinProgress.java
./hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapred/JobInProgress.java
./hadoop-mapreduce-project/src/java/org/apache/hadoop/mapred/JobInProgress.java
Exception in thread "main" spoon.compiler.ModelBuildingException: The import org.apache.hadoop.conf cannot be resolved at xxx
像Hadoop这样的项目定义有几个子模块独立编译:那么您不能将整个源代码视为一个大项目。
Spoon不是为支持带有子模块的maven项目而设计的,因此您必须将每个子模块独立提交给Spoon,但在这样做时必须尊重模块层次结构,更重要的是,您必须使用正确的类路径:例如,如果模块A
依赖于模块B
,那么在分析A
时不要忘记传递B.jar
。
我想潜入CN1的Soures。我已经使用Git遵循了这个和这个教程。然而,在NetBeans中,当我用Ctrl键单击CN1对象时,它显示“显示生成的源文件。没有源附加到类'JAR文件‘。”如果我附上我刚刚下载的ie“CodenameOne/CodenameOne/src”的源代码,源代码仍然找不到! 任何帮助都很感激, 问候
问题内容: 我想知道如何分析我的代码。 我已经阅读了文档,但是由于没有给出示例,因此无法获得任何帮助。 我的代码很大,需要很多时间,因此我想介绍一下它并提高其速度。我没有用方法编写代码,介于两者之间但很少。我的代码中没有任何主要内容。我想知道如何使用分析。我正在寻找有关如何配置文件的一些示例或示例代码。 我尝试了psyco,即在代码顶部添加了两行: 这是正确的吗?它没有显示任何改善。还有其他加快方
在你的代码合并,压缩或编译后,保持客户端代码可读性和可调试性。使用Source Maps(源码映射)将源代码映射到已编译的代码。 TL;DR 使用Source Maps(源码映射)将压缩代码映射到源代码。然后,您可以在其原始源代码中读取和调试编译的代码。 仅使用能够生成Source Maps(源码映射)的预处理器。 验证您的web 服务器是否可以为Source Maps(源码映射)提供服务。 开始
问题内容: 我必须打印Java项目的整个源代码。最终版本应如下所示: Eclipse:File- > Print。但是使用此功能,您一次只能打印一个文件。 有没有一种方法可以使用一个命令打印(或创建pdf / rtf)整个项目(所有 .java,。xml,…文件)? 我在Windows XP SP3上使用Eclipse Galileo 编辑: 对于每个类/文件,页面应(或多或少)如下所示: C:\
假设我试图从使用基本身份验证/基本证书的RESTful api中提取,那么在我的程序中存储用户名和密码的最佳方式是什么?现在它只是以明文形式存在。 有没有更安全的方法? 谢啦
问题内容: 我目前在一个项目中,其中的代码中有大约3000行的SQL字符串。 该项目是一个Java项目,但是这个问题可能适用于任何语言。 无论如何,这是我第一次见到如此糟糕的东西。该代码库是遗留的,因此我们可以突然迁移到Hibernate或类似的东西。 您该如何处理非常大的SQL字符串? 我知道这很不好,但是我不知道建议什么是最好的解决方案。 问题答案: 在我看来,将那些硬编码的值放入存储过程中,