2012-10-15 22 views
5

Ci sono strumenti disponibili che prenderanno un file manifest.mf da un barattolo e mostreranno i contenuti in modo piacevole?Manifest.mf visualizzatore di file?

In particolare, quando si lavora con i bundle OSGi, le voci Export-Package e Import-Package possono diventare piuttosto grandi e difficili da capire su cosa sta succedendo. Aggiunto a questa semplice ricerca di testo con parole chiave non è affidabile al 100% a causa di interruzioni di riga.

risposta

5

Credo che il plug-in Eclipse per BND tools lo fa abbastanza bene. Ha un editor per la visualizzazione di un file jar.

+0

Questo è quasi esattamente quello che stavo cercando: l'editor JAR mostra solo il file manifest come testo normale, ma l'Editor di Bundle BND sembra in grado di aprire un file jar e analizzare e visualizzare il file importa pkgs bene (+1) ma non l'esportazione o pkgs privato (-1). – pauli

+2

In realtà non è corretto. Se hai aggiunto il tuo file Jar al tuo cnf Repository, devi solo cliccare sul bundle nella vista Repository e poi dare un'occhiata alla vista "Imports/Exports". Lì vedrai che tipo di pacchetti saranno importati e che tipo di pacchetti saranno esportati.ma ovviamente non quelli privati, bc sono ancora privati;) –

+2

Nota che nella versione recente di Bndtools puoi installare l'editor JAR come componente autonomo, ovvero non devi installare l'intero Bndtools se non lo fai voglio. –

0

Se si utilizza Eclipse è possibile utilizzare il plugin Manifesto Editor configurato dal

enter image description here

+0

Eclipse non apre il file jar stesso, è necessario creare un progetto da esso prima di utilizzare l'editor. – Robin

+0

@Robin right non ho letto completamente la domanda :) – shyam

2

BND stesso può essere eseguito da linea di comando e stamperà tutti i dettagli:

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

È inoltre possibile fare clic su un vaso in bndtools e selezionare la scheda di stampa, questo ti dà maggiori dettagli di quanto probabilmente bisogno .

BND può essere scaricato dal https://bndtools.ci.cloudbees.com/job/bnd.master/lastSuccessfulBuild/artifact/dist/bundles/biz.aQute.bnd/biz.aQute.bnd-latest.jar

tipo di aiuto BND per informazioni sui comandi.

+0

Il collegamento cloudbees è rotto. –

2

analizzarlo in javascript;) Ecco un JSFiddle a pretty-stampa un file 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; 
    } 
} 

Si ordina le voci per ordine alfabetico anche, in modo da poter confrontare loro. Spero che possa essere utile a qualcuno (in particolare persone che si sviluppano al di fuori di Eclipse).

+1

Davvero molto utile, molte grazie! –