能否在Android应用中使用org.eclipse.aether?遇Apache Http依赖问题求助
解决Android中org.eclipse.aether依赖Apache Http的问题
方案1:引入Android适配版Apache HttpClient
直接添加专门为Android优化的Apache HttpClient依赖,替代系统废弃的组件,这是改动最小的快速解决方案:
在模块级build.gradle中加入:
dependencies { implementation 'org.apache.httpcomponents:httpclient-android:4.5.14' // 若需处理multipart请求,补充以下依赖 implementation 'org.apache.httpcomponents:httpmime:4.5.14' }
该包包含aether-transport-http所需的全部类,无需依赖系统自带的废弃Apache Http API。
方案2:替换为OkHttp驱动的Aether传输实现
如果想遵循Android现代网络最佳实践,可替换Aether的HTTP传输层为OkHttp:
- 先添加OkHttp依赖:
dependencies { implementation 'com.squareup.okhttp3:okhttp:4.12.0' }
- 实现
org.eclipse.aether.spi.connector.transport.TransporterFactory接口,用OkHttp封装HTTP请求逻辑;也可查找开源社区已实现的OkHttp版Transporter,省去自行开发成本。
方案3:迁移到Apache Maven Resolver(Aether官方继任者)
Eclipse Aether已停止维护,官方推荐迁移到Apache Maven Resolver。其HTTP传输模块默认使用HttpURLConnection,完全不依赖Apache HttpClient,适配性更好:
- 替换原有Aether依赖为Maven Resolver组件:
dependencies { implementation 'org.apache.maven.resolver:maven-resolver-api:1.9.15' implementation 'org.apache.maven.resolver:maven-resolver-impl:1.9.15' implementation 'org.apache.maven.resolver:maven-resolver-transport-http:1.9.15' implementation 'org.apache.maven.resolver:maven-resolver-solver:1.9.15' }
- 调整代码中的API调用——Maven Resolver与Aether API高度相似,大部分逻辑可平滑迁移,长期来看更利于项目维护。
内容的提问来源于stack exchange,提问作者Xiue
相关产品推荐
相关产品推荐

