2016-06-29 2 views
3

Ich versuche, die opencsv-Bibliothek in meinem Projekt zu verwenden, um einige CSV-Dateien zu lesen. Ich füge diese Abhängigkeit richtig in Gradle hinzu und es erscheint für die Verwendung in der Entwicklungszeit. Während der Bereitstellungszeit mit OSGI wird dieser Fehler jedoch angezeigt:OSGI Gradle Ungelöste Anforderung: Import-Paket: com.opencsv; version = "[3.8.0.4.0.0]" Liferay IDE 3

Unresolved requirement: Import-Package: com.opencsv;version="[3.8.0,4.0.0)" 

Vielleicht verliere ich die Grundlagen. . Ich grabe innen Glas und in dem Manifest automatisch generiert erscheint "com.opencsv; version =" [3.8.0,4.0.0)“in "Import-Package" -Eintrag Ich glaube, mein build.gradle ist schuld:

dependencies { 
    compile group: "com.liferay.portal", name: "com.liferay.portal.kernel", version: "2.3.0" 
    compile group: "com.liferay.portal", name: "com.liferay.util.taglib", version: "2.1.0" 
    compile group: "javax.portlet", name: "portlet-api", version: "2.0" 
    compile group: "javax.servlet", name: "servlet-api", version: "2.5" 
    compile group: "jstl", name: "jstl", version: "1.2" 
    compile group: "org.osgi", name: "org.osgi.compendium", version: "5.0.0"  
    compile group: "com.opencsv", name: "opencsv", version: "3.8" 

} 

version = '1.0.0' 

ich bin sicher, dass die Lösung einfach sein könnte, und dumm, aber ich bin nicht in der Lage, es zu bekommen.

Antwort

2

ich mich antworten. ich hoffe, dass dies für die andere helfen.

für diese Arten von Bibliotheken, die Sie zu tun haben, diese dinge:

  • Laden Sie Ihr Glas herunter und legen Sie es in Ihre Haupt/Ressourcen.
  • In Ihrem bundle.gradle des Projekts

    bundle { 
    exclude group: 'group.of.package' 
    instruction 'Bundle-ClassPath', '.,nameofjar.jar' 
    instruction 'Embed-Transitive', 'true'} 
    
  • Refresh Gradle

    Abhängigkeiten Bündel von Server Fehler
  • Entfernen hinzuzufügen.

  • Cleand und Build und Deploy.

Ich hoffe, das funktioniert für Sie. Wenn nicht, versuche mich zu kontaktieren und versuche zu helfen.

1

Eine weitere Option, wenn Sie die liferay gradle Plugin oder bnd gradle Plugin verwenden, ist eine bnd.bnd Datei auf Ihrem Modul hinzufügen und setzen diese Anweisung in dort

Private-Package: \ 
    <your.package.name>.*,\ 
    com.opencsv.* 

diese Weise können Sie nicht den bundle {...} Block brauchen . Private-package kopiert alle referenzierten Dateien in Ihre Datei jar und diese Klassen sind während der Ausführung Ihrer Bundles verfügbar. Hier ist more reference on the Private-Package: instruction.

Verwandte Themen