Proguard удаление атрибута основного класса из файла манифеста - PullRequest
0 голосов
/ 17 апреля 2020

Я использую Proguard, чтобы запутать мой java код. Плагин Maven для этого выглядит так:

 <plugin>
<groupId>com.github.wvengen</groupId>
<artifactId>proguard-maven-plugin</artifactId>
<version>2.2.0</version>
<executions>
    <execution>
        <phase>package</phase>
        <goals>
            <goal>proguard</goal>
        </goals>
    </execution>
</executions>
<configuration>
    <archive>
         <manifest>
            <mainClass>DataQualityApplication</mainClass>
            <packageName>com.ge.ssi</packageName>
        </manifest>
    </archive>
    <proguardInclude>${project.build.directory}/proguard.conf</proguardInclude>
    <injar>${project.build.finalName}.jar</injar>
    <outjar>${project.build.finalName}-min.jar</outjar>
    <libs>
        <lib>${java.home}/lib/rt.jar</lib>
        <lib>${java.home}/lib/jce.jar</lib>
        <lib>${java.home}/lib/jsse.jar</lib>
    </libs>
</configuration>
</plugin>

В моей Proguard. Файл conf, я также сохраняю эти свойства:

-optimizations !class/marking/final
-dontwarn
-ignorewarnings

-adaptresourcefilenames **.properties
-adaptresourcefilecontents **.properties,META-INF/MANIFEST.MF

-dontshrink
-dontoptimize
-dontusemixedcaseclassnames
-dontpreverify
-verbose

-keep public class com.ge.ssi.DataQualityApplication {
  public static void main(java.lang.String[]);
}

Но когда я пытаюсь запустить запутанный jar, я получаю сообщение об ошибке:

нет атрибута основного манифеста, в SSI-DataQuality-Engine-0.0.1-SNAPSHOT-V4.4-min.jar

Файл манифеста присутствует, но у него нет атрибута основного класса, но мой атрибут основного класса присутствует в оригинальный jar манифест.

Я пробовал различные методы, я также явно упомянул основной класс в файле pom, как вы можете видеть в приведенном выше фрагменте кода, все та же проблема.

...