我在 Eclipse 中有一个动态 Web 项目。构建 java 源代码后,我想使用yGuard
. 外部 Jar 文件已放在lib
Tomcat 目录下的文件夹中,并根据该路径配置构建路径。我将该路径作为外部类包含在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
(提取后)替换目录中的类文件后应该可以正常工作。