首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Simulink项目依赖管理和依赖解决

Simulink项目依赖管理和依赖解决
EN

Stack Overflow用户
提问于 2016-03-10 21:11:37
回答 1查看 806关注 0票数 5

当项目跨团队工作且项目依赖于不同的模型和库时,在Simulink项目中管理依赖关系的最佳实践是什么?

当使用Gradle构建应用程序并声明项目的依赖项(包括所需的版本号)时,将是一个并行的例子。等级将解析并下载构建项目所需的版本。

例如,以下声明依赖于library的2.1版本和some-library的1.0以上版本,因此最新版本1.x (1.0、1.1、1.2.)可以下载和使用的。

代码语言:javascript
复制
dependencies {
    compile("com.example:library:2.1")
    compile("com.example:some-library:1.+")
}

Simulink文档 (以及在此涵盖舱单)似乎在讨论具有版本号的项目中的模型。它似乎没有提到导入到项目中的库。仅在单个项目中使用的模型都可以包含在整个项目中,但是如果在单独的项目或库(或在项目中定义的库)中定义的通用S-函数适用于多个项目,那么会发生什么呢?这种需求的目的是帮助支持由持续集成服务器(如Jenkins )触发的自动构建过程。

我对一个工作流很感兴趣,它将很容易地支持依赖管理和使用集流 git分支策略的自动依赖解析。

EN

回答 1

Stack Overflow用户

发布于 2018-03-23 13:40:49

我在这个问题上花了很多时间。最后,我没有在网上找到合适的解决方案,但是我想分享我们现在使用的工作流,它满足了我们的需求。

简而言之:我们使用git子模创建了自己的依赖关系管理。

假设:实际上,更多地是对持久依赖项的版本管理,而不是提供动态添加新包或删除旧包或库的可能性。这也有效,但需要将git子模块添加到主git存储库中或从主git存储库中删除。

目标:

  • 为所有在项目中工作的人提供一致的设置。
  • 退化的可追溯性。
  • 以较少的努力持续整合。

我们是如何做到的(例如):

  • 我们有项目A和项目B,这些项目将用于项目C。
  • 这三个项目都处于git版本控制之下,目前仍在开发中。
  • 我们已经为项目A和项目B建立了额外的版本存储库,例如位于网络驱动器上。
  • 在项目C中,我们将项目A和项目B的发布库添加为git子模块
  • 我们已经设置了某种自动部署,只将相关文件推入这些发行版存储库中。例如,如果我们想让Project的更改被项目C访问,我们只能在Project的存储库中创建一个版本标记,然后将其推送到它的发布存储库中。
  • 在项目C中,我们更新我们的git子模块,并可以签出一个新的子模块版本(如果需要的话)。

优势:

  • 由于git在主项目中存储git子模块的签出版本(commit),所以我们可以确保每个人都使用相同的文件。
  • 更改子模块的提交在主项目中是可跟踪的。
  • 主项目与依赖项之间的关系始终是一致的。
  • 持续集成应该“开箱即用”。我们使用的是GitLab和GitLab运行程序,只需要设置我们的运行程序来递归地获取子模块(在嵌套子模块的情况下)。

我认为,只要存储库不会变得太大,这种方法就能工作,因为您不仅获取所需的版本,而且还获取整个版本历史。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35927370

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档