O que faz com que a ferramenta/nomes de pacote/pacote de exportação etc. significa em um jar manifesto

StackOverflow https://stackoverflow.com/questions/1816606

  •  08-07-2019
  •  | 
  •  

Pergunta

Estou olhando para o manifesto.mf para algumas bibliotecas do Apache. Embora eu possa adivinhar o que significa pacote de exportação, não consigo encontrar nenhuma documentação para esses atributos? Alguém poderá me indicar a direção correta. Aqui.s um exemplo:

Manifest-Version: 1.0
Created-By: 1.6.0_07 (Sun Microsystems Inc.)
Built-By: pemben
Implementation-Title: Commons BeanUtils
Implementation-Vendor: The Apache Software Foundation
Implementation-Vendor-Id: org.apache
Implementation-Version: 1.8.2
Specification-Title: Commons BeanUtils
Specification-Vendor: The Apache Software Foundation
Specification-Version: 1.8.2
Export-Package: org.apache.commons.beanutils.locale.converters;
Private-Package: org.apache.commons.collections;version="1.8.2"
Ignore-Package: org.apache.commons.collections
Tool: Bnd-0.0.238
Bundle-Name: Commons BeanUtils
Bundle-Vendor: The Apache Software Foundation
Bundle-Version: 1.8.2
Bnd-LastModified: 1257775355133
Bundle-ManifestVersion: 2
Bundle-License: http://www.apache.org/licenses/LICENSE-2.0.txt
Bundle-Description: BeanUtils provides an easy-to-use but flexible wra
 pper around reflection and introspection.
Import-Package: org.apache.commons.beanutils;version="1.8.2"
Bundle-SymbolicName: org.apache.commons.beanutils
Bundle-DocURL: http://commons.apache.org/beanutils/
Foi útil?

Solução

Os atributos do pacote definem informações wrt. Osgi Pacotes. Um pacote OSGI é simplesmente um arquivo .jar que também define (através dos atributos) o que ele exporta e quais são suas dependências (incluindo versões). Observe que o arquivo .jar pode ser usado como um arquivo .jar padrão - as informações do pacote são usadas apenas em um contêiner OSGI.

Este artigo do Javaworld é uma boa introdução.

Outras dicas

Isto é Osgi. O Eclipse o usa, também Nutch.

De Export-Package Arquivado, eu acho que você está olhando para um Pacote Osgi.

Verifique o artigo da Wikipedia ou o Página inicial Osgi para detalhes.

Se você quer explicações realmente boas para os significados das entradas manifestas de Osgi, sugiro fortemente que você leia o especificação. Não é muito longo e explicará com detalhes tudo o que você deseja saber. Além disso, lembre -se de que o arquivo manifesto.mf não é específico para osgi; Outras bibliotecas Java também fazem uso disso. Como tal, nem todas as entradas que você vê acima são definidas pela especificação OSGI, como 'ferramenta' e 'bnd-lastmodificada', que foram adicionadas pelo BND Utility.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top