使用yGuard混淆Java类文件无法解析少量外部Jar文件

时间:2019-07-06 10:07:13

标签: java tomcat7 yguard

我在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/classesproject-obf.jar目录中的类文件之后(提取之后)应该能正常工作。

0 个答案:

没有答案