【问题标题】:Include dependencies from Spring XML using maven-bundle-plugin使用 maven-bundle-plugin 包含来自 Spring XML 的依赖项
【发布时间】:2017-06-15 16:55:45
【问题描述】:

我正在使用 maven-bundle-plugin 创建 MANIFEST.MF。它适用于在 java 代码中检测到的依赖项,但它忽略了 spring XML 的内容。例如,我有以下声明:

  <context:mbean-export />

  <bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />

  <bean id="jpaVendorAdapter"
    class="org.springframework.orm.jpa.vendor.EclipseLinkJpaVendorAdapter">
    <property name="databasePlatform"
      value="org.eclipse.persistence.platform.database.PostgreSQLPlatform" />
    <property name="generateDdl" value="true" />
  </bean>

所以,很明显,我的包需要导入包 org.springframework.orm.jpa.supportorg.springframework.orm.jpa.vendororg.eclipse.persistence.platform.database 和一些我什至不知道的 MBeans 处理器包。

据我所知,在我参与的一个项目中,我们使用了 Spring 和 maven-bundle-plugins,所有依赖项检测工作正常,所以看起来我的配置中缺少某些东西。我需要以某种方式通知捆绑插件它应该分析哪个 XML 文件。

如何让 bundle 插件检测 spring XML 的依赖关系?

这是我的捆绑插件配置:

  <plugin>
    <groupId>org.apache.felix</groupId>
    <artifactId>maven-bundle-plugin</artifactId>
    <executions>
      <execution>
        <id>generate-resources</id>
        <goals>
          <goal>manifest</goal>
        </goals>

        <configuration>
          <instructions>
            <Bundle-Name>${project.name}</Bundle-Name>
            <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
          </instructions>
        </configuration>
      </execution>
    </executions>
  </plugin>

【问题讨论】:

  • 您使用哪个版本的 maven-bundle-plugin?
  • @ChristianSchneider mvn -Dplugin=org.apache.felix:maven-bundle-plugin help:describe 告诉我,3.2.0

标签: java spring maven osgi bundle


【解决方案1】:

我不确定 maven-bundle-plugin 是否能识别普通的 spring 上下文。我知道它适用于蓝图上下文。无论如何,请确保您的 spring 上下文放置在 META-INF/spring 中。它只会在这个位置被识别。

在任何情况下都不再支持在 OSGi 中使用 spring。唯一的生产就绪方式是 spring dm,这个项目已经死了。 Aries 蓝图中有一个完全春天的实验性支持,但还不是生产级。

OSGi 中经过验证的方法是使用蓝图(例如 Aries 蓝图)。很长一段时间以来,还有一个 maven 插件可以在构建期间创建蓝图 xml。所以在你的源代码中你只使用注释。

Karaf Tutorial Part 1

【讨论】:

猜你喜欢
  • 2012-04-20
  • 2014-03-12
  • 2011-11-07
  • 2016-09-21
  • 1970-01-01
  • 2018-02-28
  • 2011-01-15
  • 2023-03-14
  • 2012-05-07
相关资源
最近更新 更多