Maven 不会在目标目录中创建.class文件



我正在使用 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-编译器插件中删除包含标签,那么我得到类不存在错误。

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

你的解释不是很清楚,你说出来

包含所有需要的 JAR 文件

但是,然后你说

最终捆绑包中没有.class文件

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

最新更新