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

时间:2012-09-26 10:16:28

标签: maven osgi maven-bundle-plugin

我通过在eclipse中使用maven bundle插件创建osgi包。在我的应用程序中,我有非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文件,我的目标目录也不包含任何。类文件。

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

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

1 个答案:

答案 0 :(得分:0)

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

  

包含所有需要的jar文件

但是,那么你说

  

最终包中没有.class文件

因此它不包含所有需要的jar文件。 话虽如此,您似乎错过了关键export-packageprivate-package BND指令。查看maven bundle plugin here

的文档