Python 为什么android-support-v4.jar没有添加到Buck Antenapod示例中?
我正在浏览并查看它如何构建Python 为什么android-support-v4.jar没有添加到Buck Antenapod示例中?,python,buck,Python,Buck,我正在浏览并查看它如何构建子模块文件夹 有一个jar文件android-support-v4.jar,它是这个项目的一部分 我看不到代码中有任何地方实际添加了这个.jar。我也没有在buck out/bin文件夹中看到它 以下是android_库的步骤: android_library( name = 'dslv-lib', srcs = glob(['submodules/dslv/library/src/**/*.java']), deps = [ ':all-jars
子模块
文件夹
有一个jar文件android-support-v4.jar
,它是这个项目的一部分
我看不到代码中有任何地方实际添加了这个.jar。我也没有在buck out/bin
文件夹中看到它
以下是android_库的步骤:
android_library(
name = 'dslv-lib',
srcs = glob(['submodules/dslv/library/src/**/*.java']),
deps = [
':all-jars',
':dslv-res',
],
)
我看到它获取java文件,这取决于所有JAR和dslv res规则。但是,所有jar只获取libs文件夹中的jar(该文件夹不支持-v4.jar)
我的问题是:为什么没有添加这个android-support-v4.jar
(或者我遗漏了什么),添加它的构建规则是什么
Buck示例中的完整天线脚代码如下:
import re
jar_deps = []
for jarfile in glob(['libs/*.jar']):
name = 'jars__' + re.sub(r'^.*/([^/]+)\.jar$', r'\1', jarfile)
jar_deps.append(':' + name)
prebuilt_jar(
name = name,
binary_jar = jarfile,
)
android_library(
name = 'all-jars',
exported_deps = jar_deps,
)
presto_gen_aidls = []
for aidlfile in glob(['src/com/aocate/presto/service/*.aidl']):
name = 'presto_aidls__' + re.sub(r'^.*/([^/]+)\.aidl$', r'\1', aidlfile)
presto_gen_aidls.append(':' + name)
gen_aidl(
name = name,
aidl = aidlfile,
import_path = 'src',
)
android_library(
name = 'presto-aidls',
srcs = presto_gen_aidls,
)
android_build_config(
name = 'build-config',
package = 'de.danoeh.antennapod',
)
APP_CLASS_SOURCE = 'src/de/danoeh/antennapod/AppShell.java'
android_library(
name = 'main-lib',
srcs = glob(['src/de/danoeh/antennapod/**/*.java'], excludes = [APP_CLASS_SOURCE]),
deps = [
':all-jars',
':dslv-lib',
':presto-lib',
':appcompat',
':build-config',
':res',
],
)
android_library(
name = 'application-lib',
srcs = [APP_CLASS_SOURCE],
deps = [
':build-config',
':jars__buck-android-support',
],
)
android_resource(
name = 'res',
package = 'de.danoeh.antennapod',
res = 'res',
assets = 'assets',
deps = [
':appcompat',
':dslv-res',
]
)
android_library(
name = 'dslv-lib',
srcs = glob(['submodules/dslv/library/src/**/*.java']),
deps = [
':all-jars',
':dslv-res',
],
)
android_resource(
name = 'dslv-res',
package = 'com.mobeta.android.dslv',
res = 'submodules/dslv/library/res',
deps = [
]
)
android_library(
name = 'presto-lib',
srcs = glob(['src/com/aocate/**/*.java']),
deps = [
':presto-aidls',
':all-jars',
],
)
android_manifest(
name = 'manifest',
skeleton = 'AndroidManifest.xml',
deps = [
':main-lib',
],
)
keystore(
name = 'debug_keystore',
store = 'keystore/debug.keystore',
properties = 'keystore/debug.keystore.properties',
)
android_binary(
name = 'antennapod',
manifest = ':manifest',
keystore = ':debug_keystore',
use_split_dex = True,
exopackage = True,
primary_dex_patterns = [
'^de/danoeh/antennapod/AppShell^',
'^de/danoeh/antennapod/BuildConfig^',
'^com/facebook/buck/android/support/exopackage/'
],
deps = [
':main-lib',
':application-lib',
],
)
android_prebuilt_aar(
name = 'appcompat',
aar = 'libs/appcompat-v7-19.1.0.aar',
)
更新
这是我试图实现的库项目
这是库项目中的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,
)
在该BUCK
文件中,为BUCK在lib/
下找到的每个.jar
文件创建一个规则。我们在中的该文件夹下添加了support-v4-19.1.0.jar
。这在/:all jar
构建目标中被引用为导出的dep
。/:dslv lib
构建目标依赖于/:all jar
,因此它最终成为一个显示在IntelliJ中的依赖项。Ahh,support-v4-19.1.0.jar
=android-support-v4.jar