问题标签 [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.

0 投票
1 回答
156 浏览

maven - 将通用代码移动到 `subprojects {}` 块中断构建

我在 Grade 中有一个多项目(多个 java 子项目),我计划将它上传到一个 maven 存储库(当前是一个本地存储库),包括sourcesjavadoc工件。我只需将以下代码添加到每个子项目,然后maven install完成工作:

现在在 10 个子项目中拥有相同的代码并不是很好,所以我决定将这段代码移动到项目的subprojects { ... }配置中。但是,现在它不再工作了:只构建空源和 javadoc jar,普通 jar 被忽略,并且不再将文件复制到本地 maven 存储库。如何正确地做到这一点?maven install

谢谢。

0 投票
1 回答
3859 浏览

android - Android 运行时异常 - 找不到从方法 XXX 引用的类 XXX。

我有一些我正在尝试组合的 android 项目,但我面临一些我无法理解的运行时异常。

这些项目是这样构建的:


C/C++ 项目 ProjCore(具有 .c 和 .h 文件)


Android Project ProjB -> 使用 -> ProjCore

注意:ProjB 实现了一个Service,并通过aidl 生成的 java 类使用 ProjCore。ProjCore 位于jni文件夹中。NDK 已安装。ProjB 配置为自动运行 ndk-build。ProjCore 的编译生成一个带有 .so 文件的libs目录。


Android 项目 ProjA -> 使用 -> ProjB

注:ProjA 实现了一个 Activity 并使用 ProjB Service 类。


ProjA 和 ProjB(包括 ProjCore)构建成功,生成了 apk,但是在运行时,当我运行 ProjA 的活动时,我收到以下错误消息:


据我所知,这些消息通常与使用外部 jar 的项目相关联,人们忘记将这些 jar 放在 libs 文件夹中。但是项目崩溃(ProjA)仅与项目 ProjB 具有依赖关系,并且依赖关系在项目属性中配置。

我正在使用: - Kubuntu 10.04 - Eclipse Indigo - Android NDK-r8 - 安装了 Eclipse CDT

有谁知道问题是什么?

0 投票
1 回答
1230 浏览

ant - Ant 可选类路径元素

我有一些模块和一个主要的可运行项目。我有通用的构建文件,并且

build.common.xml

..并且每个模块都在它们的 build.xml 中声明了自己的依赖项:

问题是如果没有内部依赖,我会得到以下异常:“找不到参考模块。类路径。”

解决方案是什么?我如何声明一个可选的类路径元素?

注意: 如果有人想建议用我的模块创建 jar,请证明这一点。我将拥有 5-10 个快速变化的模块,并且我不想在构建过程中执行不必要的步骤。

更新:我将构建提取到两个不同的目标中并为它们创建了一个条件,但没有帮助(它与“错误”相呼应并使用模块依赖项构建):

0 投票
2 回答
2447 浏览

visual-studio-2012 - 多项目解决方案模板

我正在创建具有 Web 应用程序、桌面、少数类库和单元测试项目的多项目解决方案模板。

我构建了基本容器并将其打包为 VSIX 容器。当我安装 VSIX 容器时,我可以将我的解决方案模板的 .zip 文件放在以下物理路径中

%AppData%\Local\Microsoft\VisualStudio\11.0\Extensions\tbxs0hui.w2e\ProjectTemplates\CSharp\1033\myprojecttemplate.zip,所以一切都很好。

但是当我启动 Visual Studio 2012 时,我无法在 New Project -> Visual C# 下看到我的解决方案模板。

我什么时候出错了?有什么建议么?

这是 Multisolution RootTemplate.vstemplate 内容:

安装VSIX后,我可以在VS2012中看到一个名为“MultiProject”的新项目。当我创建一个新项目时,四个测试项目没有在Tests文件夹下创建。我尝试用vstemplate中Tests文件夹下的类库替换它们,它工作正常,只有具有 ProjectTypeGuid {3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 的单元测试项目不会在测试文件夹下创建。

0 投票
1 回答
40743 浏览

gradle - Gradle multiproject 给出“在项目中找不到属性‘sourceSets’”错误

我有很好的 gradle 配置,一切都很好。但是我的多项目构建中的一个项目非常多地来自其他项目,我很乐意将它移动到另一个 git repo 并配置子模块来处理它。

首先,我将 Project 及其资源移至 subfolder Libraries/MovedProject。在 gradle 配置中更改了一些行后,它工作正常。但后来我决定为这个项目编写一个新的 build.gradle,并将所有配置从主配置移到那里。

这就是一切停止工作的地方。当我尝试调用任何任务时,它总是以Could not find property 'sourceSets' on project ':Libraries/MovedProject'. 负责它的线路是:

我用它来运行测试,在这些测试中我使用来自其他项目的类。如果我删除该行,则构建仅在到达使用 MovedProject 的项目的 compileTestJava 任务时才会失败。如果我删除那条线并打电话,gradle :Libraries/MovedLibrary:properties我可以看到:

虽然gradle :Libraries/MovedLibrary:build正确构建。

目前,我已将所有内容设置如下:

  1. 目录:

    • /SomeMainProject1
    • /SomeMainProject2
    • /SomeMainProject3
    • /图书馆
      • /已移动项目
        • 构建.gradle
        • 依赖项.gradle
        • 项目.gradle
        • 任务.gradle
    • /建造者
      • 依赖项.gradle
      • 项目.gradle
      • 任务.gradle
    • 构建.gradle
    • 设置.gradle
  2. 设置.gradle

    /li>
  3. MovedProject 的源集定义在Libraries/MovedProject/project.gradle

    /li>
  4. 使用 sourceSets.test.output 的依赖项存储在 中Builder/dependancies.gradle,并为需要 MovedProject 运行测试的每个项目设置:

    /li>

摆脱该错误并使用当前目录结构制作 gradle 构建项目的最简单方法是什么?我想了解为什么 gradle 看不到该属性。

0 投票
1 回答
599 浏览

maven - osgi 项目在 intellij idea 中有几个 pom

我有两个带有 2 个 poms(类型)的 maven 项目。项目 1 中的一些组件依赖于项目 2。几乎所有组件(maven)都是 osgi 组件。

问题是:由于 IntelliJ IDEA 不支持多项目,因此不可能在一个 IDE 实例中同时打开两个项目。

然后,我相信,我将遇到一个问题,将我的 osgi 组件(它们与 IDE 中的 OSGI Facets 相关联)从 IDE 部署到我的 osgi 容器(因为它应该由 IDE 处理,在部署时使用这些方面组件到 osgi 服务器,如果我在我的 IDE 中看不到项目 2,那么它就无法处理它.. 在部署和 ide 集成方面)。

例如,如果我打开两个 IDE,其中项目 1 合二为一,项目 2 在第二个 ide 中,那么如果我在项目 2 中更改某些内容(1 取决于 2).. 我是否应该在两个 IDE 中配置相同的(一个)osgi 服务器,并单独部署?

有人有相同的项目结构吗?在 IntelliJ IDEA 中使用它的方法是什么?

0 投票
1 回答
951 浏览

eclipse - Gradle:从子项目中递归执行调用根任务

如果我有这样的 gradle 多项目

每个项目都有一个任务'foo',我可以在根项目上调用它

它也为子项目执行

但是如果我从子项目中调用任务':foo'

只有根项目上的任务被执行

但不是子项目上的“foo”任务。

有没有办法在子项目中调用所有项目的“foo”?我问这个是因为我使用的是 gradle eclipse 插件并且我只能访问子项目,即我在 eclipse 中看到的项目。

顺便说一句:到目前为止我想出的(有点hacky)解决方案

0 投票
1 回答
343 浏览

maven - Acceleo maven 生成多工件/项目

我正在尝试构建一个maven acceleo generator. 生成器由多个 acceleo 项目(maven 中的工件)组成,具有相互依赖关系。

我遇到了 emtl 文件之间的依赖关系的问题。在运行时,我收到错误消息,指出 mtl 中存在编译错误(没有)。我猜它可能是编译后的 emtl 文件中的 href。

有一个 acceleo maven 编译插件允许这些是:

a) 绝对路径(最终通过 maven 存储库)

b)'platform:/plugin/...'路径。

(a) 如果 acceleo 项目(maven 工件)构建在与我们进行生成的机器相同的机器上,但如果 maven 存储库的位置发生变化,我们就会遇到问题。因此,部署 Maven 工件最终变得毫无意义。

(b) 不起作用,因为从 Maven 内部运行,'platform:/plugin/'无法解决。

我试图覆盖 中的'createURIConverter'方法AbstractAcceleoGenerator,然后使用 aURLClassLoader我们可以解码'platform:/plugin/'href 并找到正确的 emtl 文件。我可以验证这似乎有效,但是我仍然收到报告

有什么建议么?

0 投票
1 回答
570 浏览

android - 在多个 APP 之间共享的 AIDL 上的自定义 Parcelable 会导致 ClassNotDefError

我在 Eclipse 中有三个 Android 项目:

应用 A(托管服务)

应用 B(使用 A 的服务)

AIDL(定义和一些自定义包裹)

APP A 启动 APP B。APP B 通过 APP A 的 AIDL 使用服务。到目前为止运行良好。问题是在APP B中没有看到自定义的parcelable Objects。它总是导致ClassNotDef错误。

我从来没有在任何示例中看到过这样的场景,因为它们总是比我的场景容易得多。似乎 eclipse 没有将自定义 Parcelable 文件从 AIDL 项目添加到 APP B 中。我不知道为什么,但生成的 Java 文件包含正确的 Parcelable 引用,但它们在 AIDL project.jar 或 /bin 文件夹中丢失。

我已经阅读过有关复制 AIDL 文件的信息,但老实说,这是我不想做的事情,因为这违反了良好的项目结构。

我们还在 CI 服务器上使用 maven 进行构建,生成的 Java 类和自定义 Parcelables 按预期在我的 APKLIB 项目中。

对我来说,它看起来更像是一个 Eclipse 问题,而不是其他任何东西,因为 maven 可以按预期编译和运行项目。

任何人都可以给我一个提示来设置这样一个可以在 Eclipse 中开始的场景吗?

0 投票
2 回答
19037 浏览

gradle - 如何在子项目任务结束时执行一次 Gradle 任务

我正在使用以下项目结构

子模块包含在根项目的settings.gradle和配置中。build.gradle

我有 3 个任务要做

  1. build(每个子项目都有这个)
  2. deploy(这是每个子项目都需要自己工作的打包机制)
  3. finalizeDeployment(这只需要调用一次)

我希望能够打电话

$gradle deploy<- 所有子项目都被部署并最终被调用一次

$gradle Subproject1:deploy<- Subproject1 被部署并且 finalize 被调用

构建.gradle