5.2. 修改现有 Maven 项目
5.2.1. 概述
如果您已经有一个 Maven 项目,且您想要修改它以便生成 OSGi 捆绑包,请执行以下步骤:
5.2.2. 将软件包类型改为 bundle
通过将软件包类型改为项目的 pom.xml
文件中的 捆绑包
,将 Maven 配置为生成 OSGi 捆绑包。将 packaging
元素的内容改为 捆绑包
,如下例所示:
<project ... >
...
<packaging>bundle</packaging>
...
</project>
此设置的影响是选择 Maven 捆绑包插件 maven-bundle-plugin
,以执行此项目的打包。但是,除非将捆绑包插件明确添加到 POM 中,此设置本身不会起作用。
5.2.3. 在 POM 中添加捆绑包插件
要添加 Maven 捆绑包插件,请将以下示例 插件
元素复制并粘贴到项目的 pom.xml
文件的 project/build/plugins
部分:
<project ... > ... <build> <defaultGoal>install</defaultGoal> <plugins> ... <plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <version>3.3.0</version> <extensions>true</extensions> <configuration> <instructions> <Bundle-SymbolicName>${project.groupId}.${project.artifactId} </Bundle-SymbolicName> <Import-Package>*</Import-Package> </instructions> </configuration> </plugin> </plugins> </build> ... </project>
其中,捆绑包插件由 instructions
元素中的设置进行配置。
5.2.4. 自定义捆绑包插件
有关为 Apache CXF 配置捆绑包插件的一些特定建议,请参考 第 5.3 节 “在捆绑包中打包 Web 服务”。
5.2.5. 自定义 JDK 编译器版本
几乎需要在 POM 文件中指定 JDK 版本。如果您的代码使用 Java 语言的任何现代功能,如通用、静态导入等,且您已在 POM 中自定义 JDK 版本,则 Maven 将无法编译源代码。将 JAVA_HOME
和 PATH
环境变量设置为 JDK 的正确值不足,还必须修改 POM 文件。
要配置 POM 文件,以便它接受 JDK 1.8 中引入的 Java 语言功能,请在 POM 中添加以下 maven-compiler-plugin
插件设置(如果它们尚不存在):
<project ... > ... <build> <defaultGoal>install</defaultGoal> <plugins> ... <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build> ... </project>