问题标签 [multi-project]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
maven - 使用(maven)存储库和 Maven/Gradle 管理多个项目的最佳实践?
这不完全是 Gradle 问题。但更一般的构建问题。我们有一些项目结构如下:
它们是独立的 CVS 模块。A、B 和 D 是 java 项目,由两个团队(团队 1,3)管理。C 是由另一个团队管理的 C++ 项目 (2)。B 通过 JNI 使用 C。(C是C++这个事实并不重要,关键是它是由另一个团队开发和管理的。)有两个应用程序,A是应用程序1的入口,A->B->C;而D是应用程序2的入口点,D->B->C. 发展通常涉及所有三个层面的变化。所有三个团队坐在一起并不断交流。在实践中,我们(团队 1)可能需要对 C 中的应用程序 1 进行一些更改;团队 2 在 C 上工作并给我们一个临时副本;集成后我们可能需要进行一些进一步的更改。我们会为了一个问题来回走几轮。同样适用于应用程序 2。
目前,A、B 和 D 由各种 ant 脚本管理,C 由 make 管理。我们开始探索新工具,尤其是 Gradle。在我们的第一个剪辑中,A 将 B 作为一个子项目(在 Gradle 意义上),它们总是一起构建和发布。我们也总是使用 C 的头文件(从 windows 中的源代码自己编译或获取最新的 Jenkins 构建),当我们对构建感到满意时,我们标记所有三个项目。我们最近采用了一个内部 Artifactory 存储库。我们正在考虑如何管理依赖和版本控制。完成后,我们也会将其介绍给模块 D 的团队 3。
- 我们可以尝试将 C 作为 A 的子项目,然后始终从头开始为所有三个构建。同样包括 C 和 B 作为 D 的子项目。例如,应用程序名称可以在版本名称中。
- 或者,我们总是可以依赖存储库中固定版本的 C。
在 2 中,我们不能完全依赖 C 的头部/快照,因为这可能涉及它们的开发并且可能不稳定。但是我们需要如此频繁地更改它们,以至于为每个 C 更改都放置一个新版本似乎是不切实际的。
我们想知道这种设置的最佳实践是什么?在互联网上快速搜索不会产生太多结果。谁能给我们一些建议或指点我一些书籍或文件?
太感谢了。
java - 链接的源文件夹
我正在使用 Gradle eclipse 插件,并且正在尝试连接两个项目。其中一个项目是一个库,并且永远不会导出,因为我只是链接到实际项目中的库源。另一个项目应该有一个到库源的虚拟链接,并将链接目录作为源目录添加到类路径。如何使用 build.gradle 做到这一点?具有添加所需项目(Project Properties -> Java Build Path -> Projects)或虚拟源文件夹(Project Properties -> Java Build Path -> Source -> Link Source...)的功能,但似乎没有可以将这些功能与 Gradle java、Gradle eclipse 或 Gradle eclipse-wtp 插件一起使用。
gradle - 具有多个 Lib 文件夹的 Gradle 多项目依赖项
我有一个项目,其布局如下:
在项目的lib
文件夹中abc-framework
有一堆 jar,它们代表核心框架和框架运行所需的依赖项。
我想要完成的是罐子下的任何事情,abc-core
并abc-utility
让他们可以使用这些lib
罐子。
我发现做这样的事情:
确实有效,但这意味着对于每个部分(abc-core:abc-core-actions-a、abc-utility 等)我必须包括一个像上面这样的部分,它也是相对的。
理想情况下,我想定义所有子项目对这些文件夹都有 fileTree 依赖关系,但问题是路径会根据子项目而变化。
那么compile fileTree
引用abc
项目的绝对路径的最佳方法是什么?
c# - 在 ProjectTemplates 中使用多个 IWizard 实现
我正在为我的组织创建一个多项目解决方案模板,该模板需要安装 Nuget 包并在创建时使用 Windows 窗体设置一些自定义参数。我正在使用 VSIX 部署它。
我有这两个功能分别运行,但我还没有找到同时使用这两个功能的方法。根据http://msdn.microsoft.com/en-us/library/vstudio/bb763141(v=vs.100).aspx Visual Studio 应该支持在项目模板中使用多个 IWizard,如果我正确理解它。
我尝试了直接方法,只是在 .vstemplate 文件中添加了对两个向导的引用,但只执行了第一个。我还尝试使用下面的代码在我的自定义向导中调用 Nuget-wizard,但我想我必须以某种方式使用 packages-info 设置 WizardData 才能使其工作...
可以实现多个 IWizard 实现的使用还是不可能?
gradle - gradle 按需编译依赖,否则使用 jars
我有兴趣在多模块项目中使用 gradle,我可以重用这个问题Gradle nested multi-projects with project compile dependencies并说明它的依赖关系
与原始问题一样,我想编译 PP1 - 但我只是按需编译,否则我想使用最新的构建 jar 依赖项。
所以理想情况下我想要类似的东西
如果 PP1 目录中的源文件比最新构建的 jar 更新,它将被编译。这个想法是仅在绝对必要时进行编译。可以根据源文件与 jar 文件的最后修改时间戳做出决定。
为了使它更加复杂和潜在的高效,应该根据版本控制系统的输出做出决定——如果自时间 X 或修订版 R 以来有任何更改——然后检查和编译;否则使用 jar 依赖项。
有没有人解决过这个问题?我想它可以通过自定义 gradle/groovy 插件来解决,但肯定有人已经解决了?
谢谢。
java - 从不同的项目中调用各种包
好的,我不确定这是否可能,可能听起来也很愚蠢,请原谅我,但是是否可以说例如我正在使用 netbeans,并且我创建了各种项目,每个项目都有一个包,其中包含某些程序,我是否可以创建一个新项目和新包并将它们全部调用到一个文件中并运行它?
例如,我有一个十六进制到十进制转换器,而我拥有的另一个项目是十进制到十六进制,我创建了一个名为转换器的新项目,并在其中包含 if 和 else 函数
我说 sout("1) 十六进制到十进制转换器 2) 十进制到十六进制,键入数字以使用转换器");
是否可以在一个项目中调用外部项目或包?
谢谢。
java - 如何配置一个子项目依赖于主项目的 Gradle 项目?
我的源代码中有一个迷你应用程序,我正试图将它移到一个单独的子项目中。但是,迷你应用程序取决于主项目。如何建立一个build.gradle
文件来反映这一点?
这是我的目录结构:
build.gradle
我在想可以在子项目的文件中做这样的事情:
但这似乎不起作用。
visual-studio-2010 - Visual Studio 多项目模板:项目参考问题
上下文:我目前正在开发一个 VB.NET 多项目模板,它们之间有交叉引用,几乎可以正常工作。
问题: VS 为每个生成的项目生成新的 GUID,并将它们更新到新的 .sln 和每个新的 .vbproj 中,但从不以相同的方式将项目引用更新到 .vbproj 中。
这是一个 .vbproj 示例:
...并在另一个生成的 .vbproj 中进一步引用之前的项目:
一些线索:我已经尝试通过replacementsDictionary
在我的IWizard
Root 和 Child 派生类中强制执行特定的 GUID 替换,但是 VS 一直在替换旧的 GUID:
在这里,$Sguid6$
标签将被 VS 忽略,并被新的闪亮 GUID 替换!
然后再次在另一个 .vbproj 中:$Sguid6$
将采用我告诉他接受我的 GUID replacementsDictionary
,正如预期的那样。
问题:我如何告诉 VS 正确交换所有这些 GUID,或者至少不要更改它们?
scala - SBT 可以使用子项目的依赖配置自动按顺序构建子项目吗?[多项目构建]
现在的情况
对于 scala 项目,我有以下目录结构:
我编写了一个 sbt 构建定义来从根项目构建所有项目:
该文件包含每个项目的条目:
每次我添加一个项目或更改项目之间的依赖关系时,我都必须更新这个文件。
目标
我认为没有必要手动执行此操作。每个项目已经包含一个build.sbt
文件,其中配置了项目的依赖项。
所以 sbt 已经知道所有的依赖项,并且根项目应该能够轻松找到所有项目,因为它们位于包含build.sbt
文件的子目录中。
是否有现有的机制或插件可以自动获取所有项目,分析它们的依赖关系并按顺序构建它们?
如果它可以处理这样的递归子项目目录结构,那将是完美的:
如果没有这样的机制或插件:
- 也许我误会了什么。其他人如何构建多个相互依赖的项目?
- 我应该自己写一个任务或插件来让 sbt 做我想做的事吗?对此有任何提示吗?
gradle - 如何从 Gradle 的主目录中将项目包含在多项目构建中?
让我们有这个结构
我在subproject1如何编写我的settings.gradle文件以包含subproject1和subproject2作为根项目的子项目。我的settings.gradle文件在主目录中吗?
我试过了:
但什么也没发生。
来自 Gradle 文档:
如果您在没有 settings.gradle 文件的项目中执行 Gradle,Gradle 会执行以下操作:
- 它在名为master 的目录中搜索 settings.gradle,该目录与当前目录具有相同的嵌套级别。
- 如果没有找到settings.gradle,它会搜索父目录中是否存在 settings.gradle 文件。
- 如果未找到settings.gradle文件,则构建将作为单个项目构建执行。
- 如果找到settings.gradle文件,Gradle 会检查当前项目是否是找到的 settings.gradle 文件中定义的多项目层次结构的一部分。如果不是,则构建将作为单个项目构建执行。否则执行多项目构建。