0

我有一个要部署在 karaf 中的应用程序。我已经创建了一个功能文件,并且可以使用 karaf 控制台通过该文件添加功能。我现在想要实现的是通过 maven 命令创建此功能文件,而不是手动创建它,然后使用此功能文件创建自定义 karaf 分发。我怎样才能实现它?

到目前为止,我的方法是创建一个使用 karaf-maven-plugin 生成特征文件的 maven 模块,然后创建另一个模块来生成 karaf 自定义分发,这样我们就不需要在生产环境中访问 maven。

这种方法正确吗?我真的需要制作两个不同的模块来实现它吗?如何从第二个模块访问功能文件。

这些是我的绒球-

所有依赖项

<build>
    <finalName>${project.artifactId}-${project.version}</finalName>
    <plugins>
        <plugin>
            <groupId>org.apache.karaf.tooling</groupId>
            <artifactId>karaf-maven-plugin</artifactId>
            <version>4.0.5</version>
            <extensions>true</extensions>
            <executions>
                <execution>
                    <id>generate</id>
                    <phase>generate-resources</phase>
                    <goals>
                        <goal>features-generate-descriptor</goal>
                    </goals>
                    <configuration>
                        <startLevel>80</startLevel>
                        <aggregateFeatures>true</aggregateFeatures>
                        <includeTransitiveDependency>true</includeTransitiveDependency>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

我还无法弄清楚第二部分。对此的任何帮助都非常感谢。

4

1 回答 1

0

要生成自定义 Karaf,您只需要使用 karaf-maven-plugin。

例如,以下将生成一个完全可用的自定义 Karaf:

        <plugin>
            <groupId>org.apache.karaf.tooling</groupId>
            <artifactId>karaf-maven-plugin</artifactId>
            <version>4.0.0</version>
            <extensions>true</extensions>
            <configuration>
                <!-- no startupFeatures -->
                <bootFeatures>
                  <feature>minimal</feature>
                </bootFeatures>
                <installedFeatures>
                    <feature>wrapper</feature>
                    <feature>spring/4.0.7.RELEASE_1</feature>
                </installedFeatures>
            </configuration>
        </plugin>

这将基于创建最小发行版所需的最小功能集生成自定义 karaf。如果您想依赖标准发行版,只需将其与标准交换即可。顺便提一句。所有这些也记录在Karaf 文档中

于 2016-07-22T20:37:38.533 回答