问题标签 [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 - 将通用代码移动到 `subprojects {}` 块中断构建
我在 Grade 中有一个多项目(多个 java 子项目),我计划将它上传到一个 maven 存储库(当前是一个本地存储库),包括sources
和javadoc
工件。我只需将以下代码添加到每个子项目,然后maven install
完成工作:
现在在 10 个子项目中拥有相同的代码并不是很好,所以我决定将这段代码移动到父项目的subprojects { ... }
配置中。但是,现在它不再工作了:只构建空源和 javadoc jar,普通 jar 被忽略,并且不再将文件复制到本地 maven 存储库。如何正确地做到这一点?maven install
谢谢。
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
有谁知道问题是什么?
ant - Ant 可选类路径元素
我有一些模块和一个主要的可运行项目。我有通用的构建文件,并且
build.common.xml
..并且每个模块都在它们的 build.xml 中声明了自己的依赖项:
问题是如果没有内部依赖,我会得到以下异常:“找不到参考模块。类路径。”
解决方案是什么?我如何声明一个可选的类路径元素?
注意: 如果有人想建议用我的模块创建 jar,请证明这一点。我将拥有 5-10 个快速变化的模块,并且我不想在构建过程中执行不必要的步骤。
更新:我将构建提取到两个不同的目标中并为它们创建了一个条件,但没有帮助(它与“错误”相呼应并使用模块依赖项构建):
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} 的单元测试项目不会在测试文件夹下创建。
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
正确构建。
目前,我已将所有内容设置如下:
目录:
- /SomeMainProject1
- /SomeMainProject2
- /SomeMainProject3
- /图书馆
- /已移动项目
- 构建.gradle
- 依赖项.gradle
- 项目.gradle
- 任务.gradle
- /已移动项目
- /建造者
- 依赖项.gradle
- 项目.gradle
- 任务.gradle
- 构建.gradle
- 设置.gradle
设置.gradle
/li>MovedProject 的源集定义在
/li>Libraries/MovedProject/project.gradle
:使用 sourceSets.test.output 的依赖项存储在 中
/li>Builder/dependancies.gradle
,并为需要 MovedProject 运行测试的每个项目设置:
摆脱该错误并使用当前目录结构制作 gradle 构建项目的最简单方法是什么?我想了解为什么 gradle 看不到该属性。
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 中使用它的方法是什么?
eclipse - Gradle:从子项目中递归执行调用根任务
如果我有这样的 gradle 多项目
每个项目都有一个任务'foo',我可以在根项目上调用它
它也为子项目执行
但是如果我从子项目中调用任务':foo'
只有根项目上的任务被执行
但不是子项目上的“foo”任务。
有没有办法在子项目中调用所有项目的“foo”?我问这个是因为我使用的是 gradle eclipse 插件并且我只能访问子项目,即我在 eclipse 中看到的项目。
顺便说一句:到目前为止我想出的(有点hacky)解决方案
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 文件。我可以验证这似乎有效,但是我仍然收到报告
有什么建议么?
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 中开始的场景吗?
gradle - 如何在子项目任务结束时执行一次 Gradle 任务
我正在使用以下项目结构
子模块包含在根项目的settings.gradle
和配置中。build.gradle
我有 3 个任务要做
build
(每个子项目都有这个)deploy
(这是每个子项目都需要自己工作的打包机制)finalizeDeployment
(这只需要调用一次)
我希望能够打电话
$gradle deploy
<- 所有子项目都被部署并最终被调用一次
$gradle Subproject1:deploy
<- Subproject1 被部署并且 finalize 被调用
构建.gradle