1

Eclipse で Maven バンドル プラグインを使用して osgi バンドルを作成しています。私のアプリケーションには、ほとんどの Java クラスが依存している非 Maven jar ファイルがあります。私の 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 does not exist エラーが発生しました。

ですから、ターゲットディレクトリと最終バンドルに.classファイルを作成しない上記のコードの問題は何か教えてください。

4

1 に答える 1

0

あなたの説明はあまり明確ではありません、あなたはそれを言います

必要なすべてのjarファイルが含まれています

しかし、あなたは言う

最終バンドルに .class ファイルがありません

そのため、必要なすべての jar ファイルが含まれているわけではありません。そうは言っても、キーexport-packageprivate-packageBND ディレクティブが欠落しているようです。ここでmavenバンドルプラグインのドキュメントを確認してください

于 2013-01-14T22:18:12.697 に答える