【问题标题】:How to manage directory structure of a project that uses third-party open source library?使用第三方开源库的项目如何管理目录结构?
【发布时间】:2011-12-11 07:54:21
【问题描述】:

我开发了一个开源应用程序。我的项目的目录结构是:

app
|-include
|-src
|-doc
|-build
|-lib
|-bin

我想使用另一个开源库。有一些选择:

  • includesrc目录下添加第三方库源代码。
  • 编译第三方库并添加到includelib目录。
  • 创建third_party目录,添加完整的第三方库源码。
  • 创建一个third_party目录,并在其中添加编译好的第三方库。

什么是最好的选择?有没有更好的方法来管理使用第三方开源库的项目的目录结构?

【问题讨论】:

    标签: open-source directory-structure


    【解决方案1】:
    • 如果您曾经计划升级第三方库,将其保存在特定的子目录中会更方便。您不必拥有特定的“第三方”目录;你可以用图书馆来命名它。

    • 想想版本控制中发生了什么。

      • 如果您将第三方库复制到您的存储库,那么您不应该包含已编译的产品(使用源代码代替),因为它们通常无法区分和平台特定的。
      • 如果用户要单独获取库并将其添加到您的项目树中,那么使用子目录将更容易取消归档并保证不会出现任何名称冲突;源代码与二进制文件应由用户自行决定。
      • 另一方面,如果您使用 VCS 管理的引用(例如 SVN 外部或 Git 子模块),您可能必须将源包含在子目录中。

    【讨论】:

      【解决方案2】:

      根据您的情况,您应该记住的一个问题是,您是否有朝一日必须考虑到那些第三方开源组件以及对许可证的遵守等问题。如果这样,管理此类事情会更容易您将第三方文件保存在他们自己的目录中。将未经修改的源代码和许可证放在手边,以及指向您获得源代码并可以再次获得它的链接的链接也会很有用。我曾在有许可证合规性验证流程的公司工作,如果第三方来源以这种方式隔离,这些流程更容易通过。

      https://softwareengineering.stackexchange.com/questions/234511/what-is-the-best-practice-for-arranging-third-party-library-licenses-paperwork 与此相关。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-09-15
        • 1970-01-01
        • 1970-01-01
        • 2012-08-14
        • 2010-09-07
        • 2014-10-06
        • 1970-01-01
        相关资源
        最近更新 更多