首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在EAR上运行`jdeprscan`

如何在EAR上运行`jdeprscan`
EN

Stack Overflow用户
提问于 2019-07-29 22:36:42
回答 1查看 361关注 0票数 2

jdeprscan工具确定列出所有不推荐使用和不存在的依赖项。它可以在类、目录和JAR上运行。

但是如何在耳朵上运行它呢?

EN

回答 1

Stack Overflow用户

发布于 2019-07-29 22:36:42

https://stackoverflow.com/a/57217414/698168的启发,我使用以下脚本(Windows)将EAR分解为EAR:

代码语言:javascript
复制
rem remove previous run
rd /s /q ear

rem extract the EAR
"C:\Program Files\7-Zip\7z" x -oear *.ear

rem extract the WAR
cd ear
"C:\Program Files\7-Zip\7z" x -owar *.war

rem unify JAR from EAR and WAR
copy war\WEB-INF\lib\*.jar lib

rem make JAR with the classes
cd war\WEB-INF\classes
rem "C:\Program Files\7-Zip\7z" a -r my-app.jar
"C:\Program Files\Java\jdk-11\bin\jar" cvf my-app.jar -C . .
rem Note: using 7zip to create the JAR may lead to errors when running jdeprscan, thus we are using the jar command
copy my-app.jar ..\..\..

rem return to origin
cd ..\..\..

rem unpack all libraries...
cd lib
"C:\Program Files\7-Zip\7z" x  -aoa -oclasses *.jar

rem .. and repack them as a fat JAR
cd classes
rem "C:\Program Files\7-Zip\7z" a -r 00lib.jar
"C:\Program Files\Java\jdk-11\bin\jar" cvf 00lib.jar -C . .

rem duplicate the fat JAR and make some cleaning
copy 00lib.jar ..\00lib.jar
copy 00lib.jar ..\01lib.jar
cd ..
rd /s /q classes

rem return to origin
cd ..\..

请注意,此脚本不使用来自JEE Server的库(即,jdeprscan会将范围为"provided“的所有Maven库报告为error: cannot find class )。

然后,我使用以下命令生成一个jdeprscan报告:

代码语言:javascript
复制
"C:\Program Files\Java\jdk-11\bin\jdeprscan" --for-removal --verbose --class-path ear\lib\*.jar ear\my-app.jar > deprscan.log 2>&1

然后,您可以检查jdeprscan.log文件。未找到的类可能不存在于最新的Java版本(例如11)中,或者可能存在于JEE模块中。缺少的类如下所示(Java11不再提供BASE64Encoder,但由ChecksumHelper使用):

代码语言:javascript
复制
Processing class oracle/spatial/security/ChecksumHelper...
error: cannot find class sun/misc/BASE64Encoder

在最好的情况下,您可以在日志文件(例如Jar file my-lib-2.3.4.jar)中找到上面的JAR名称,否则您将需要根据类名确定库。

注意:所有这些都是为了将Java 8迁移到Java 11而设计的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57256051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档