我在Eclipse中有一个动态Web项目。构建Java源代码后,我想使用yGuard
来混淆类文件。外部Jar文件已放置在Tomcat目录的lib
文件夹中,并且根据该路径配置了构建路径。我将该路径作为外部类包含在build.xml
ANT文件中。
在收缩日志中,我得到如下警告。认为这些是警告,所以我继续进行,并用新的替换了旧的类文件。
但是在启动服务器时,Web项目无法正常运行。这意味着我无法登录或以任何其他方式使用该项目。
我也尝试过Proguard,但同样的警告也在那里持续存在。也尝试过-ignorewarnings
,但是在替换原始类文件时仍然存在相同的问题。
build.xml
文件:
<project name="project" default="yguard" basedir=".">
<target depends="jar" name="yguard">
<taskdef name="yguard" classname="com.yworks.yguard.YGuardTask"
classpath="libs/yguard.jar"/>
<yguard>
<inoutpair in="project.jar" out="project-obf.jar"/>
<externalclasses>
<pathelement location="C:/Program Files/Apache Software Foundation/Tomcat 7.0/lib/*.jar"/>
</externalclasses>
<shrink logfile="${shrinklog}">
</shrink>
</yguard>
</target>
<!-- compile -->
<target name="compile" depends="init">
<javac srcdir="${srcDir}" includes="com/technomedia/**/*.java"
destdir="${classDir}">
</javac>
</target>
<!-- create .jar -->
<target name="jar" depends="compile">
<jar jarfile="project.jar"
basedir="build/classes"
includes="com/technomedia/**">
</jar>
</target>
</project>
我在shrink.xml
文件中收到的减弱消息:
<!-- no entrypoints given - using class access public and protected on all inoutpairs. -->
<!-- parsing D:\TMSS\Project\Proguard\src\Proguard\ProGuard.jar -->
<!-- WARNING:Unresolved external dependency: javax.servlet.http.HttpServlet not found! -->
<!-- WARNING:Unresolved external dependency: org.apache.catalina.websocket.MessageInbound not found! -->
<!-- WARNING:Unresolved external dependency: javax.servlet.http.HttpServlet not found! -->
<!-- WARNING:Unresolved external dependency: org.apache.catalina.websocket.WebSocketServlet not found! -->
<!-- WARNING:Unresolved external dependency: javax.servlet.http.HttpServlet not found! -->
<!-- WARNING:Unresolved external dependency: javax.servlet.http.HttpServlet not found! -->
我希望在替换build/classes
中project-obf.jar
目录中的类文件之后(提取之后)应该能正常工作。