2012-10-15 32 views
5

Czy są dostępne jakieś narzędzia, które pobierają plik manifest.mf ze słoika i ładnie wyświetlają zawartość?Przeglądarka plików Manifest.mf?

W szczególności podczas pracy z pakietami OSGi pozycje Export-Package i Import-Package mogą stać się dość duże i trudne do ustalenia, co się dzieje. Do tego prostego wyszukiwania słów kluczowych nie jest w 100% niezawodny z powodu łamania linii.

Odpowiedz

5

wierzę plugin Eclipse dla BND tools robi to dość ładnie. Posiada edytor do przeglądania pliku jar.

+0

To prawie dokładnie to, co byłem po - edytor JAR pokazuje tylko plik manifestu jako zwykły tekst, ale BND Bundle Editor wydaje się być w stanie otworzyć plik jar i parsować i wyświetlić importuj ładnie pkg (+1), ale nie eksportuj ani pkgs prywatnych (-1). – pauli

+2

Właściwie to nie jest poprawne. Jeśli dodałeś plik Jar do repozytorium cnf, wystarczy kliknąć pakiet w widoku repozytorium, a następnie przejrzeć widok "Import/eksport". Tam zobaczysz, jaki rodzaj paczek zostanie zaimportowany i jaki rodzaj paczek zostanie wyeksportowany.ale oczywiście nie prywatne, bo nadal są prywatne;) –

+2

Pamiętaj, że w najnowszej wersji Bndtools możesz zainstalować edytor JAR jako samodzielny komponent, tzn. nie musisz instalować całego Bndtools, jeśli nie masz t chcę. –

0

Jeśli używasz zaćmienie można użyć wtyczki Manifest Edytor skonfigurowany przez

enter image description here

+0

Eclipse nie otworzy pliku jar, należy najpierw utworzyć z niego projekt przed użyciem edytora. – Robin

+0

@Robin prawy nie czytać tego pytania całkowicie :) – shyam

2

BND sobie mogą być uruchamiane z linii poleceń i drukuje wszystkie dane:

java -jar biz.aQute.bnd.run.jar xx.jar 

Można również przejrzeć słoiku w bndtools i wybierz zakładkę druku, to daje więcej szczegółów niż prawdopodobnie trzeba .

BND można pobrać z https://bndtools.ci.cloudbees.com/job/bnd.master/lastSuccessfulBuild/artifact/dist/bundles/biz.aQute.bnd/biz.aQute.bnd-latest.jar

Rodzaj bnd pomoc dla informacji o poleceniach.

+0

Link do cloudbees jest zepsuty. –

2

analizować je w javascript;) Oto JSFiddle do całkiem-print plik OSGi MANIFEST.MF:

http://jsfiddle.net/scotch/5WJwd/embedded/result/

var sectionsText = text.split(/\n\n\n/), 
    sections = {}, 
    sectionText, 
    name, 
    body, 
    packagesText, 
    packages, 
    packageName, 
    packageBody; 

for (var i in sectionsText) { 
    sectionText = sectionsText[i]; 
    name = sectionText.substr(0, sectionText.indexOf(": ")); 
    body = sectionText.substr(sectionText.indexOf(": ") + 2); 
    sections[name] = body; 

    if (name.indexOf("Package") != -1) { 
     body = body.replace(/[\n\r] /g, ''); 
     body = body.replace(/(,)(?=(?:[^"]|"[^"]*")*$)/g, "$1\n"); 
     packagesText = body.split(/\n/); 
     packages = {}; 
     for (var i in packagesText) { 
      packageBody = packagesText[i]; 
      packageName = packageBody.substr(0, packageBody.indexOf(";")); 
      packageBody = packageBody.substr(packageBody.indexOf(";")+1); 

      if (collapse) { 
       packageBody = packageBody.replace(/uses:="[^"]*"/g, 'uses:="..."'); 
      } 

      packages[packageName] = packageBody;//.replace(/;/g, ';\n'); 
     } 
     sections[name] = packages; 
    } 
} 

To sortuje wpisy wg kolejności alfabetycznej też, więc można porównać im. Mam nadzieję, że przyda się komuś (szczególnie osobom rozwijającym się poza Eclipse).

+1

Bardzo pomocne, wielkie dzięki! –

Powiązane problemy