1

这似乎是一件简单的事情,但我无法弄清楚为什么我创建的某些模块最终会在不同的集群(即 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>

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

该应用程序运行良好,只是让我感到困惑。

有任何想法吗?

4

1 回答 1

1

检查模块的 nbm 文件 Info/Info.xml 中定义了哪些集群。

  • 如果它有错误或缺失的值,你必须查看模块的 pom 配置为什么会这样。它在 pom.xml 或已弃用的 src/main/nbm/module.xml 中定义错误
  • 由于您在应用程序中定义了 defaultCluster 参数,该模块可能最终会出现在“ide”集群中

这是当前 nbm-maven-plugin 中模块的行为。对于 osgi 捆绑包,行为更加流畅,因为捆绑包 jar 不包含二进制文件中的集群信息。

于 2013-11-08T06:30:05.130 回答