为什么在Buck AntennaPod示例中没有添加androidsupportv4.jar?

2024-09-29 23:18:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在研究AntennaPod并查看它如何构建submodules文件夹。在

enter image description here

有一个jar文件android-support-v4.jar是这个项目的一部分。在

我看不到代码中实际添加this.jar的地方。我在buck-out/bin文件夹中也看不到它。在

以下是android_library步骤:

android_library(
  name = 'dslv-lib',
  srcs = glob(['submodules/dslv/library/src/**/*.java']),
  deps = [
    ':all-jars',
    ':dslv-res',
  ],
)

我看到它获取java文件,它依赖于所有jar和dslv res规则。但是所有jar只获取libs文件夹中的jar(该文件夹没有support-v4.jar)。在

我的问题是:为什么这个android-support-v4.jar没有被添加(或者我遗漏了什么),添加它的构建规则是什么?在

Buck示例中完整的天线支架代码如下:

^{pr2}$

更新

这是我要实施的图书馆项目。在

enter image description here

这是图书馆项目中的Buck文件

prebuilt_jar(
  name = 'android-support-v4',
  binary_jar = 'android-support-v4.jar',
  visibility = [
    'PUBLIC',
  ],
)

prebuilt_jar(
  name = 'bolts',
  binary_jar = 'bolts.jar',
  visibility = [
    'PUBLIC',
  ],
)

这里是我尝试过的最好的构建规则。在

### com.phonegap.plugins.facebook

android_library(
  name = 'facebook-plugin-java',
  srcs = glob(['com.phonegap.plugins.facebookconnect/app-FacebookLib/src/**/*.java']),
)

android_resource(
  name = 'facebook-plugin-res',
  package = 'com.facebook',
  res = 'com.phonegap.plugins.facebookconnect/app-FacebookLib/res',
)

facebook_plugin_jar_deps = []
for jarfile in glob(['com.phonegap.plugins.facebookconnect/app-FacebookLib/libs/*.jar']):
  name = 'jars__' + re.sub(r'^.*/([^/]+)\.jar$', r'\1', jarfile)
  facebook_plugin_jar_deps.append(':' + name)
  prebuilt_jar(
    name = name,
    binary_jar = jarfile,
  )

android_library(
  name = 'facebook-plugin-jars',
  exported_deps = facebook_plugin_jar_deps,
)

Tags: depsname文件夹comsupportfacebooklibraryres
1条回答
网友
1楼 · 发布于 2024-09-29 23:18:01

在这个BUCK文件中,Buck在lib/下找到的每个.jar文件都会创建一个^{}规则。我们在this commit的文件夹下添加support-v4-19.1.0.jar。这在//:all-jars构建目标中被引用为exported_dep//:dslv-lib生成目标接受//:all-jars的依赖关系,因此它最终成为IntelliJ中显示的依赖项。在

相关问题 更多 >

    热门问题