Die Verwendung von Proguard mit einer Bibliothek hat eine @ Service-Bean, die sich automatisch einschalten sollte

8

Ich habe eine Bibliothek Common.License, die ich mit Proguard verschleiern kann:

%Vor%

In dieser Bibliothek ist eine Spring-Bean mit @Service versehen:

%Vor%

Ich verwende diese Bibliothek in einem Webservice-Unternehmen.Lizenz, wo ich möchte, dass der LicenseService autowire:

%Vor%

So Company.License ist von Common.License abhängig. Wenn ich Common.License verschleiere, wird licenseService in BackgroundTasks nicht automatisch übertragen. Der einzige Weg, um dies zu umgehen, war, den Lizenzservice explizit als Bean zu definieren:

%Vor%

Ich sollte das nicht explizit als Bean deklarieren müssen, da ich die Klasse mit @Service bereits kommentiert habe, was ausreichen sollte, um das Autowirken von licenseService in BackgroundTasks Spring-magisch zu ermöglichen. Aber das tut es nicht!

Was macht Proguard speziell, damit das nicht funktioniert? Kann ich irgendetwas in der Konfiguration von Proguard tun, um es Frühlingsfreundlicher zu machen?

Gewähren Sie

    
Grant Cermak 10.12.2010, 17:39
quelle

2 Antworten

5

Ein großes Dankeschön an Eric Lafortune, dass er mir dabei geholfen hat, mich in die richtige Richtung zu lenken:

Ссылка

Hier ist die Arbeit pom-Datei, die das Plug-In und die erforderlichen Optionen angibt:

%Vor%

HINWEIS! Sie müssen ProGuard 4.4 verwenden, die neueste Version von ProGuard-Maven-Plugin (2.0.4) verwendet 4.3, daher müssen Sie folgendes bearbeiten:

%Vor%

Um die 4.4-Abhängigkeit (wie folgt) zu haben:

%Vor%     
Grant Cermak 13.12.2010, 17:16
quelle
1

Hier ist ein anderer Weg, um zu Version 4.4 von Proguard zu wechseln (was wahrscheinlich ein bisschen besser ist):

%Vor%     
Grant Cermak 14.12.2010 17:42
quelle