如何下载适用于OSGi+Ant构建的完整Apache Camel Core JAR?
解决方案:获取OSGi兼容的完整Camel Core及Kafka组件JAR
1. 为什么你下载的camel-core只有3KB?
你下载的是POM打包类型的空JAR,并非包含核心类的OSGi bundle包。Maven仓库中同一个artifactId会存在多种打包类型,需要选择正确的jar类型(带bundle classifier)的文件。
2. 下载正确的Camel组件包
核心包:camel-core
选择对应版本(如4.2.0)的camel-core,下载标注为bundle classifier的JAR文件,正常大小应该在30MB左右,包含org.apache.camel.builder.RouteBuilder等核心类,且带有OSGi规范的MANIFEST.MF配置。
Kafka集成包:camel-kafka
Camel Core本身不包含Kafka相关实现,必须单独下载同版本的camel-kafka bundle包,这个包提供Kafka消费者的所有核心类。
3. 批量处理依赖(Ant构建推荐)
手动找全所有依赖包容易遗漏,可临时用Maven批量下载:
- 创建临时
pom.xml文件,内容如下:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>temp</groupId> <artifactId>temp-camel-kafka</artifactId> <version>1.0-SNAPSHOT</version> <dependencies> <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-core</artifactId> <version>4.2.0</version> <classifier>bundle</classifier> </dependency> <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-kafka</artifactId> <version>4.2.0</version> <classifier>bundle</classifier> </dependency> </dependencies> </project>
- 在该文件目录下运行Maven命令:
mvn dependency:copy-dependencies -DoutputDirectory=lib
- 将生成的
lib目录下所有JAR复制到你的Ant项目依赖目录即可。
4. 验证OSGi兼容性
下载的JAR必须包含OSGI-INF/MANIFEST.MF文件,且文件中存在Bundle-SymbolicName、Export-Package等OSGi标准头部,确保能在OSGi容器中正常加载。
内容的提问来源于stack exchange,提问作者Dark Matter
相关产品推荐
相关产品推荐

