Android Windows 和 Mac 上的图书馆项目
Android Library Projects on Windows and Mac
我代表我的两个 Android 开发团队问这个问题。我使用 Windows,我的搭档使用 Mac 一本书。通过 Git 共享项目时, classpaths
不小心弄乱了。以下是一些观察结果:
- 引用的库项目(最初工作)无法再解决。
- 通过 'Java Build Path' 中的“项目”选项卡添加时,可以找到库。
- 但应用程序崩溃(由于
NoClassDefFoundError
),再次指向混乱的构建路径结构。
- Mac 上最初引用的库项目曾经作为 JAR 直接出现在构建路径中。现在他们在 Android Dependencies 下做,这很奇怪(前者更多)。
- 在 Windows 上,上述 JAR 一直在 Dependencies 和 Referenced Libraries 下。
我想以一种我们可以在 Git 上共享项目并在未来无缝工作的方式解决这个问题。 :)
一个选项是:
- 不是版本
.classpath
,
- 版本类路径模板
- 根据检出代码的当前平台生成正确的类路径。
这称为 content filter driver,这里是 smudge
脚本,它将在 git checkout
上自动调用(因此 "seamless" 方面),并将生成实际 .classpath
(否则未版本化并添加到 .gitignore
)
(图片显示在“Customizing Git - Git Attributes", from "Pro Git book”)
请注意,您可以轻松地从存储库中删除(无需在本地删除).classpath
:
git rm --cached -- .classpath
git add -u .
git commit -m "Delete .classpath"
git push
我代表我的两个 Android 开发团队问这个问题。我使用 Windows,我的搭档使用 Mac 一本书。通过 Git 共享项目时, classpaths
不小心弄乱了。以下是一些观察结果:
- 引用的库项目(最初工作)无法再解决。
- 通过 'Java Build Path' 中的“项目”选项卡添加时,可以找到库。
- 但应用程序崩溃(由于
NoClassDefFoundError
),再次指向混乱的构建路径结构。 - Mac 上最初引用的库项目曾经作为 JAR 直接出现在构建路径中。现在他们在 Android Dependencies 下做,这很奇怪(前者更多)。
- 在 Windows 上,上述 JAR 一直在 Dependencies 和 Referenced Libraries 下。
我想以一种我们可以在 Git 上共享项目并在未来无缝工作的方式解决这个问题。 :)
一个选项是:
- 不是版本
.classpath
, - 版本类路径模板
- 根据检出代码的当前平台生成正确的类路径。
这称为 content filter driver,这里是 smudge
脚本,它将在 git checkout
上自动调用(因此 "seamless" 方面),并将生成实际 .classpath
(否则未版本化并添加到 .gitignore
)
(图片显示在“Customizing Git - Git Attributes", from "Pro Git book”)
请注意,您可以轻松地从存储库中删除(无需在本地删除).classpath
:
git rm --cached -- .classpath
git add -u .
git commit -m "Delete .classpath"
git push