1

我正在通过在 Eclipse 中使用 maven bundle 插件创建 osgi bundle。在我的应用程序中,我有非 maven jar 文件,大多数 java 类在我的应用程序中都依赖于该文件。我的 pom.xml 文件如下。

<build>
    ...

    <plugins>
        ....

        <plugin>
            <groupId>org.apache.felix</groupId>
            <artifactId>maven-bundle-plugin</artifactId>
            <version>2.2.0</version>
            <extensions>true</extensions>
            <configuration>
                <instructions>
                    <Bundle-Activator>org.myapp.Activator</Bundle-Activator>
                    <Include-Resource>a1.jar=${basedir}/src/main/java/lib/a1.jar,a2.jar=${basedir}/src/main/java/lib/a2.jar,a3.jar=${basedir}/src/main/java/lib/a3.jar</Include-Resource>
                    <Bundle-ClassPath>.,${basedir}/src/main/java/lib/a1.jar,${basedir}/src/main/java/lib/a2.jar,${basedir}/src/main/java/lib/a3.jar</Bundle-ClassPath>

                </instructions>
            </configuration>
        </plugin>
        <!-- Maven Compiler plugin -->
        <plugin>
            <inherited>true</inherited>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.1</version>
            <configuration>
                <includes>
                    <include>${project.basedir}/src/main/java/**</include>
                </includes>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
        </plugin>

        ....

    </plugins>
</build>

通过使用它,我可以成功构建我的应用程序,并且我的最终 jar 包还包含所有需要的 jar 文件,但问题是,最终包中没有 .class 文件,我的目标目录也不包含任何 .class 文件。

如果我从 maven-compiler-plugin 中删除包含标记,那么我得到类不存在错误。

所以请告诉我上面的代码有什么问题,它没有在目标目录和最终包中创建 .class 文件。

4

1 回答 1

0

你的解释不是很清楚,你说吧

包含所有需要的 jar 文件

但是,然后你说

最终包中没有 .class 文件

所以它不包含所有需要的 jar 文件。话虽如此,您似乎缺少 keyexport-packageprivate-packageBND 指令。在此处查看 Maven 捆绑插件的文档

于 2013-01-14T22:18:12.697 回答