Обфусцирование файлов классов Java с помощью yGuard не может разрешить несколько внешних файлов Jar - PullRequest
0 голосов
/ 06 июля 2019

У меня есть динамический веб-проект в Eclipse. После сборки исходного кода Java я хотел запутать файлы классов, используя yGuard. Внешние файлы Jar были помещены в папку lib в каталоге Tomcat, и путь сборки настроен в соответствии с этим путем. Я включил этот путь как внешние классы в файл build.xml ANT.

В журнале сокращений я получаю предупреждения, подобные упомянутым ниже. Думая, что это предупреждения, я продолжаю и заменяю старые файлы классов новыми.

Но при запуске сервера веб-проект не работает должным образом. Это означает, что я не могу войти или использовать проект любым другим способом.

Я тоже пробовал 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>

Сообщения Waning, которые я получаю в 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 (после распаковки) должно работать нормально.

...