制作一个 jar OSGi 包是什么意思

What does it mean to make a jar OSGi bundle

我正在使用 POM 中包含以下内容的库:

<!-- Plus, let's make jars OSGi bundles as well  -->
        <plugin>
          <groupId>org.apache.felix</groupId>
          <artifactId>maven-bundle-plugin</artifactId>
          <extensions>true</extensions>
          <configuration>
            <instructions>
              <Bundle-Name>${project.name}</Bundle-Name>
              <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
              <Bundle-Description>${project.description}</Bundle-Description>
              <Import-Package>
javax.xml.namespace, javax.xml.parsers, javax.xml.stream, javax.xml.stream.util,
javax.xml.transform, javax.xml.transform.dom, javax.xml.transform.sax, javax.xml.transform.stream,
org.codehaus.stax2, org.codehaus.stax2.io, org.codehaus.stax2.ri, org.codehaus.stax2.typed,
org.codehaus.stax2.validation,
org.codehaus.stax2.ri.dom, org.codehaus.stax2.ri.evt, org.codehaus.stax2.ri.typed,
org.w3c.dom,
org.xml.sax, org.xml.sax.ext, org.xml.sax.helpers
</Import-Package>
              <DynamicImport-Package>
</DynamicImport-Package>
              <Private-Package>
</Private-Package>
              <Export-Package>
com.fasterxml.aalto*
</Export-Package>
            </instructions>
          </configuration>
        </plugin>

我想知道使用它对应用程序有什么影响?

OSGi 包是什么意思?

它是一个 xml 更快的库 xml 阿尔托。

作为 OSGI 包的 jar 意味着它已准备好在 OSGI 容器中使用。清单文件中包含捆绑包信息的 jar 成为 OSGI 捆绑包。上面的 pom 插件将生成元信息,指定此 jar 中的哪些包被导出,哪些被导入等等。可以使用 bnd 等离线工具从 jar 生成 OSGI 包。