Proguard está dizendo que não consegue encontrar nenhuma classe
Estou usando o proguard com um aplicativo mvc spring e mave
seção de compilação do @ pom.xml se parece com:
<build>
<finalName>myapp</finalName>
<plugins>
<plugin>
<groupId>com.pyx4me</groupId>
<artifactId>proguard-maven-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>proguard</goal>
</goals>
</execution>
</executions>
<configuration>
<obfuscate>true</obfuscate>
<!--<options>-->
<!--<option>-keep public class</option>-->
<!--</options>-->
<injar>${project.build.finalName}</injar>
<injar>${project.build.finalName}</injar>
<inFilter>com.myapp.*</inFilter>
</configuration>
</plugin>
</plugins>
Eu também tentei:
<injar>${project.build.finalName}.war</injar>
Quando corro:
mvn clean install
Mensagem de falha de compilação:
[proguard] Reading program war [/Users/me/dev/git/myproject/myapp/target/myapp.war] (filtered)
[proguard] Error: The input doesn't contain any classes. Did you specify the proper '-injars' options?
ERROR] Failed to execute goal com.pyx4me:proguard-maven-plugin:2.0.4:proguard (default) on project myapp: Obfuscation failed (result=1) -> [Help 1]
Parece ter pegado meu jar corretamente como as mensagens antes do show:
[INFO] --- proguard-maven-plugin:2.0.4:proguard (default) @ myapp ---
[INFO] execute ProGuard [-injars, '/Users/me/dev/gitserver/myproject/myapp/target/myapp.war'(!META-INF/maven/**,com.myapp.*), -outjars, '/Users/me/dev/git/myproject/myapp/target/myapp_pg.war', -libraryjars, ....
Além disso, que opções você sugere que eu us Este é um mvc de primavera, então tenho anotações como:
@ Autowired@Serviç@Repositóri@ControladoPortanto, qualquer uma dessas classes / campos não deve ser renomeada, eu imagin
(Meu objetivo é apenas tornar uma dor de cabeça para alguém que descompila, para que eles não possam descompilar e usar o código. O ofuscamento permitirá que eles o usem, mas eles não serão capazes de manter a base de código, a menos que Não tenho algoritmos sofisticados, então não tenho nada a esconder a esse respeito.)
Atualiza
Deixe-me esclarecer aqui, meu mvc da primavera usando o maven por algum motivo (eu sou novo no maven) ao fazer uma instalação limpa do mvn produz um arquivo myapp.war e um myapp de guerra explodida / (é isso que eu quero implantar em produção, não o arquivo myapp.war)
inha pasta myapp tem:
/target/myapp/
/target/myapp/meta-inf (empty folder)
/target/myapp/web-inf
/target/myapp/web-inf/classes (com.myapp. ...)
/target/myapp/web-inf/lib/
/target/myapp/web-inf/ web.xml, application.xml (for spring)
/target/myapp/web-inf/views/
Então o programa deve estar ofuscando na pasta / target / myapp / web-inf / classes, certo? Como eu digo para fazer isso?
Update 2
Estou recebendo isso agora:
OK, não estou conseguindo: falha ao executar o objetivo ... programa .. Não é possível renomear / Usuários / me / dev / git / project1 / myapp / target / myapp / web-inf / classes (consulte minha seção de atualizações para o que eu mudei no meu pom.xml)
Alterei meu pom.xml com:
<configuration>
<obfuscate>true</obfuscate>
<injar>${project.build.finalName}/WEB-INF/classes/</injar>
<inFilter>com/myapp/**</inFilter>
</configuration>