我在制作JBoss Windup报告时经历了一些演示。在每个演示中,他们都使用了EAR文件。是否可以为.java
文件生成Windup报告?我已经尝试过了,我收到了以下错误。
INFO [ClassPathXmlApplicationContext] Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@80fc33b: startup date [Wed Dec 03 08:46:08 CET 2014]; root of context hierarchy
INFO [CustomerPackageResolver] Found Package: com.acme
INFO [ClassPathXmlApplicationContext] Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@81bc954: startup date [Wed Dec 03 08:46:12 CET 2014]; root of context hierarchy
INFO [CustomerPackageResolver] Found Package: com.acme
INFO [WindupReportEngine] Creating output path: /tmp/src/main/dk/tdc/ossj/inventory/client/StandaloneClient-java-doc
INFO [WindupReportEngine] - To overwrite this in the future, use the -output parameter.
INFO [ZipInterrogationEngine] Processing: StandaloneClient.java
ERROR [ZipInterrogationEngine] Error unzipping file.
java.util.zip.ZipException: Could not find End Of Central Directory
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(ZipFile.java:118)
at java.util.zip.ZipFile.<init>(ZipFile.java:154)
at org.jboss.windup.interrogator.ZipInterrogationEngine.process(ZipInterrogationEngine.java:81)
at org.jboss.windup.WindupMetaEngine.processArchive(WindupMetaEngine.java:297)
at org.jboss.windup.WindupMetaEngine.getArchiveMeta(WindupMetaEngine.java:160)
at org.jboss.windup.WindupReportEngine.generateReport(WindupReportEngine.java:121)
at org.jboss.windup.WindupMain.processInput(WindupMain.java:144)
at org.jboss.windup.WindupMain.main(WindupMain.java:71)
Exception in thread "Main Thread" java.lang.NullPointerException
at org.jboss.windup.reporting.ReportEngine.process(ReportEngine.java:33)
at org.jboss.windup.WindupReportEngine.generateReport(WindupReportEngine.java:128)
at org.jboss.windup.WindupMain.processInput(WindupMain.java:144)
at org.jboss.windup.WindupMain.main(WindupMain.java:71)
答案 0 :(得分:2)
不,我不这么认为。我认为最好的办法是为你的ear / war文件运行windup,然后提供你的类所在的包,如下所示:
windup --sourceMode \
--input <path to your web project file .ear or .war> \
--output <path to place of your preference> \
--source eap4 eap5 --target eap6 \
--packages com.yourpackage.something com.another.package \
Windup输出将为您提供易于浏览的报告,并找到您所需的有关课程的信息。假设您的类是商业应用程序服务器的专有API部分,那么报告将告诉您此部分需要重构以及执行此操作需要花费多少精力。
您可以在此处找到一些指南:
http://windup.github.io/windup/docs/latest/html/WindupRulesDevelopmentGuide.html
希望这可能有用。 :)
答案 1 :(得分:1)
首先,您使用的是Windup 0.6.x.这个问题是从2014年开始的。2016年,Windup已经发生了很大变化。
Windup 2.x+可以分析源文件项目。
这是因为它对EAR的作用是首先对它进行反编译,然后扫描.java
个文件。所以试试:
windupDir/bin/windup --sourceMode --input path/to/your/app --target eap
说实话,我还没有尝试将其指向单个.java
文件:)如果您出于某种原因需要这样做,请创建一个http://issues.jboss.org/browse/WINDUP问题。< / p>