小编And*_*bin的帖子

难以为现有存储库布局设置Gradle多项目构建

我正在尝试为我的项目布局已经指定的情况制作Gradle多项目构建.我有这样的事情:

-->Shared\
---->SharedComponent1\
------>build.gradle
------>src\
...
---->SharedComponent2\
------>build.gradle
...
-->Product1\
---->ProductComponent1\
------>build.gradle
---->ProductComponent2\
------>build.gradle
...
---->build\
------>settings.gradle
Run Code Online (Sandbox Code Playgroud)

我的settings.gradle看起来像这样:

rootProject.name = 'Product1'
rootProject.projectDir = new File( "${ProjectsRoot}" )

include 'Shared:SharedComponent1'
include 'Shared:SharedComponent2'
include 'Product1:ProductComponent1'
include 'Product1:ProductComponent2'
Run Code Online (Sandbox Code Playgroud)

当我在build文件夹中运行Gradle时,如下所示:

gradle -PProjectsRoot=c:\my\project\root\dir projects
Run Code Online (Sandbox Code Playgroud)

我明白了:

:projects

------------------------------------------------------------
Root project
------------------------------------------------------------

Root project 'build'
No sub-projects

To see a list of the tasks of a project, run gradle <project-path>:tasks
For example, try running gradle :tasks

BUILD SUCCESSFUL
Run Code Online (Sandbox Code Playgroud)

即它没有找到我正在尝试构建的项目.我正在尝试使用Gradle的多项目支持吗?还是我在错误的树上吠叫?

gradle

11
推荐指数
2
解决办法
2万
查看次数

在Gradle构建中处理缺省配置

我有一个Gradle构建,它可以生成我产品的主要可交付工件(安装程序).对此进行建模的Gradle项目在不同配置中具有许多不同的依赖关系.其中许多依赖项都在外部模块的默认配置上,其中一些模块的testResults配置包含测试任务的(压缩)结果.

重要的是,所有依赖项的测试结果(如果存在)将作为主要产品构建的工件发布(用作测试发生并成功的证据).如果它们不存在,这不是问题.

我试图通过迭代产品构建的所有配置,迭代每个配置中的依赖关系并testResults在模块的配置上添加以编程方式创建的依赖关系(在为此目的创建的新配置中)来做到这一点.

换句话说,我创建这样的依赖:

def processDependencyForTests( Dependency dependency ) {

    def testResultsDependency = [
      'group' : dependency.group,
      'name' : dependency.name,
      'version' : dependency.version,
      'configuration' : 'testResults'
      ]

    project.dependencies.add 'allTestResults', testResultsDependency
Run Code Online (Sandbox Code Playgroud)

这种填充该配置就好了,当然,当我尝试用它做什么,它失败了,我第一次遇到一个模块的依赖关系实际上并不一个testResults配置:

   def resolvedConfiguration = configurations.allTestResults.resolvedConfiguration
Run Code Online (Sandbox Code Playgroud)

结果如下:

Build file 'C:\myproduct\build.gradle' line: 353

* What went wrong:
Execution failed for task ':myproduct:createBuildRecord'.
> Could not resolve all dependencies for configuration ':myproduct:allTestResults'.
   > Module version group:mygroup, module:myproduct, version:1.2.3.4, configuration:allTestResults declares a dependency on configuration 'testResults' …
Run Code Online (Sandbox Code Playgroud)

gradle

10
推荐指数
1
解决办法
2915
查看次数

标签 统计

gradle ×2