这似乎是一件简单的事情,但是我无法弄清楚为什么我创建的一些模块最终以不同的群集(即IDE)和其他品牌代币在集群上。

在品牌令牌下显示的唯一模块具有此配置:

        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>nbm-maven-plugin</artifactId>
            <extensions>true</extensions>
            <configuration>
                <moduleType>autoload</moduleType>
                <codeNameBase>com.validation.manager.h2/1</codeNameBase>
                <publicPackages>
                    <publicPackage>org.h2.*</publicPackage>
                </publicPackages>
            </configuration>
        </plugin>

其他人看起来像这样:

        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>nbm-maven-plugin</artifactId>
            <extensions>true</extensions>
            <configuration>
                <moduleType>eager</moduleType>
                <codeNameBase>com.validation.manager.ui/1</codeNameBase>
            </configuration>
        </plugin>

如您所见,除了模块类型和是否有公共软件包之外,几乎没有任何差异。

该应用程序正常工作,只是让我困惑的事情。

有任何想法吗?

有帮助吗?

解决方案

在您的模块的NBM文件中检查info/info.xml中定义的群集。

  • 如果它有错误或缺失的值,则必须查看模块的POM配置为什么是这样。它要么在pom.xml或不推荐的src/main/nbm/module.xml中定义不好
  • 该模块可能最终进入“ IDE”群集,因为您在应用程序中定义了defaultcluster参数

这就是当前NBM-Maven-Plugin中模块的行为。对于OSGI捆绑,该行为更加流畅,因为束罐不包含二进制中的群集信息。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top