GVKun编程网logo

Gradle-与外部项目一起进行多项目?(gradle多项目构建)

17

本文将为您提供关于Gradle-与外部项目一起进行多项目?的详细介绍,我们还将为您解释gradle多项目构建的相关知识,同时,我们还将为您提供关于AndroidGradle将外部库和嵌套的外部库添加到

本文将为您提供关于Gradle-与外部项目一起进行多项目?的详细介绍,我们还将为您解释gradle多项目构建的相关知识,同时,我们还将为您提供关于Android Gradle将外部库和嵌套的外部库添加到项目、android – 如何创建一个没有Gradle支持的新项目?、android-Gradle多项目、android-由于gradle项目同步进行中而无法构建项目的实用信息。

本文目录一览:

Gradle-与外部项目一起进行多项目?(gradle多项目构建)

Gradle-与外部项目一起进行多项目?(gradle多项目构建)

在Gradle多项目设置中是否无法在主项目文件夹之外使用外部依赖项?

就像settings.gradle文件中一样

include ''C:\some\path\to\dependent\project\ChildA'',''ChildB''

还是必须 始终 将相关项目包含在父项目文件夹中?

答案1

小编典典

假设以下文件系统层次结构:

| \ workspace     |      \       MyProject     |      \       DependencyA

将以下内容添加到您的settings.gradleMyProject

include ''..:DependencyA''

和你内心里面build.gradleMyProject

dependencies {    compile project('':..:DependencyA'')}

根据需要重复尽可能多的项目DependencyA

Android Gradle将外部库和嵌套的外部库添加到项目

Android Gradle将外部库和嵌套的外部库添加到项目

如何将外部库和嵌套的外部库添加到android项目?


我的项目结构(不允许更改)

  • 应用/
    • App1 /
    • build.gradle
    • settings.gradle
    • 图书馆/
    • 图书馆1 /
      • 建立等级
      • settings.gradle
    • 图书馆2 /
      • 建立等级
      • settings.gradle
    • 图书馆3 /
      • 建立等级
      • settings.gradle
    • 图书馆4 /
      • 建立等级
      • settings.gradle

应用1

App1 / build.gradle

buildscript {    ...}apply plugin: ''android''dependencies {    compile fileTree(dir: ''libs'', include: ''*.jar'')    compile project('':..:libraries:library1'')    compile project('':..:libraries:library2'')    compile project('':..:libraries:library3'')    compile project('':..:libraries:library4'')}android {    ...}

App1不直接依赖library3library4,但是,如果我不在build.gradle文件和settings.gradle文件的依赖项中包括它们,它将抱怨。所以,我让他们加入只是为了阻止它抱怨。

App1 / settings.gradle

include '':''include ''..:libraries:library1''include ''..:libraries:library2''include ''..:libraries:library3''include ''..:libraries:library4''

图书馆1

library1 / build.gradle

buildscript {    ...}apply plugin: ''android-library''dependencies {    compile fileTree(dir: ''libs'', include: ''*.jar'')    compile project('':..:library3'')    compile project('':..:library4'')}android {    ...}

library1 / settings.gradle

include '':''include ''..:library3''include ''..:library4''

图书馆2..4

library2..4 / build.gradle

buildscript {    ...}apply plugin: ''android-library''dependencies {    compile fileTree(dir: ''libs'', include: ''*.jar'')}android {    ...}

library2..4 / settings.gradle

include '':''

当试图gradlew clean buildApp1我得到以下错误:

FAILURE: Build failed with an exception.* Where:Build file ''/home/user/projects/branches/branch1/Apps/libraries/library1/build.gradle'' line: 15* What went wrong:A problem occurred evaluating project '':..:library:library1''.> Project with path '':..:library3'' could not be found in project '':..:library:library1''.

线15 compile project('':..:library3'')library1/build.gradle的文件。

如何将外部库和嵌套的外部库添加到android项目?

答案1

小编典典

在顶级settings.gradle(App1 / settings.gradle)文件中,对每个库执行类似的操作

include '':library1''   include '':library2''   include '':library3''   include '':library4''project('':library1'').projectDir = new File(rootProject.projectDir, ''../libraries/library1'')project('':library2'').projectDir = new File(rootProject.projectDir, ''../libraries/library2'')project('':library3'').projectDir = new File(rootProject.projectDir, ''../libraries/library3'')project('':library4'').projectDir = new File(rootProject.projectDir, ''../libraries/library4'')

删除其他settings.gradle文件,您不需要它们

然后在每个构建脚本中,您只需要使用

compile project ('':library1'')compile project ('':library2'')etc....

如上所述,只需在根项目(App1)中使用单个settings.gradle文件。

然后从您的App1文件夹运行gradlew clean :library1:build以验证library1是否正确构建。

至于有关App1抱怨缺少库3和4的问题,您确定应用程序中没有直接引用这些库的代码,或者在编译library1时找不到这些库。分别构建每个库以验证它们都可以正常构建。

android – 如何创建一个没有Gradle支持的新项目?

android – 如何创建一个没有Gradle支持的新项目?

是否可以在 Android Studio中创建一个没有毕业支持的新项目,也就是说在Intellij IDEA IDE中也是如此?

解决方法

据我了解,android工作室依赖于毕业作为构建引擎,因此您无法创建一个没有毕业支持的android项目

android-Gradle多项目

android-Gradle多项目

我正在尝试为多项目环境配置gradle.

我的项目结构如下:

MainProject
--external
  --A
  --B
  --C

我已经能够为MainProject配置build.gradle和settings.gradle文件.

我的问题是两个子项目A& B取决于C

在项目A的build.gradle中

apply plugin: 'android-library'

dependencies {
    compile filetree(dir: 'libs', include: '*.jar')
    compile project('../C')
}

Gradle说无法找到路径为../C的项目.我应该走哪条路?

解决方法:

尝试:

compile project(':external:C')

有关项目路径的更多详细信息,请参见Gradle用户指南中的section 56.5.

android-由于gradle项目同步进行中而无法构建项目

android-由于gradle项目同步进行中而无法构建项目

我是使用Android项目0.82版的新手.我正在创建一个新的应用程序(从头开始),然后尝试运行该应用程序.但由于gradle项目同步失败,因此构建过程要花费很多时间,并且在文本编辑器的顶部,它表示gradle项目同步正在进行中.这需要永远.我已经检查了gradle包装器属性,之前已经完成了在项目中下载gradle 1.12的工作.

这是想法日志

2014-08-06 22:51:33,707 [ 284991]   INFO - llij.help.impl.HelpManagerImpl - Failed to load help set from 'jar:file:///C:\Users\stephen\AppData\Local\Android\android-studio\help\ideahelp.jar!/idea/Help.hs' 
javax.help.HelpSetException: Could not parse
Got an IOException (C:\Users\stephen\AppData\Local\Android\android-studio\help\ideahelp.jar (The system cannot find the path specified))
Parsing Failed for null
  at javax.help.HelpSet.<init>(HelpSet.java:146)
  at com.intellij.help.impl.HelpManagerImpl.loadHelpSet(HelpManagerImpl.java:159)
  at com.intellij.help.impl.HelpManagerImpl.createHelpSet(HelpManagerImpl.java:133)
  at com.intellij.help.impl.HelpManagerImpl.invokeHelp(HelpManagerImpl.java:54)
  at com.intellij.ide.actions.ContextHelpAction.actionPerformed(ContextHelpAction.java:42)
  at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAware(ActionUtil.java:164)
  at com.intellij.openapi.actionSystem.impl.ActionButton.actionPerformed(ActionButton.java:170)
  at com.intellij.openapi.actionSystem.impl.ActionButton.performAction(ActionButton.java:133)
  at com.intellij.openapi.actionSystem.impl.ActionButton.processMouseEvent(ActionButton.java:313)
  at java.awt.Component.processEvent(Component.java:6270)
  at java.awt.Container.processEvent(Container.java:2229)
  at java.awt.Component.dispatchEventImpl(Component.java:4861)
  at java.awt.Container.dispatchEventImpl(Container.java:2287)
  at java.awt.Component.dispatchEvent(Component.java:4687)
  at java.awt.Lightweightdispatcher.retargetMouseEvent(Container.java:4832)
  at java.awt.Lightweightdispatcher.processMouseEvent(Container.java:4492)
  at java.awt.Lightweightdispatcher.dispatchEvent(Container.java:4422)
  at java.awt.Container.dispatchEventImpl(Container.java:2273)
  at java.awt.Window.dispatchEventImpl(Window.java:2719)
  at java.awt.Component.dispatchEvent(Component.java:4687)
  at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
  at java.awt.EventQueue.access$200(EventQueue.java:103)
  at java.awt.EventQueue$3.run(EventQueue.java:694)
  at java.awt.EventQueue$3.run(EventQueue.java:692)
  at java.security.AccessController.doPrivileged(Native Method)
  at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
  at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
  at java.awt.EventQueue$4.run(EventQueue.java:708)
  at java.awt.EventQueue$4.run(EventQueue.java:706)
  at java.security.AccessController.doPrivileged(Native Method)
  at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
  at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
  at com.intellij.ide.IdeEventQueue.defaultdispatchEvent(IdeEventQueue.java:697)
  at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:520)
  at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:335)
  at java.awt.EventdispatchThread.pumpOneEventForFilters(EventdispatchThread.java:242)
  at java.awt.EventdispatchThread.pumpEventsForFilter(EventdispatchThread.java:161)
  at java.awt.EventdispatchThread.pumpEventsForHierarchy(EventdispatchThread.java:150)
  at java.awt.EventdispatchThread.pumpEvents(EventdispatchThread.java:146)
  at java.awt.EventdispatchThread.pumpEvents(EventdispatchThread.java:138)
  at java.awt.EventdispatchThread.run(EventdispatchThread.java:91)

解决方法:

最后,以某种方式尝试使缓存无效并重新启动几次后没有任何效果,我尝试重新启动笔记本电脑,然后它才开始工作.构建最终可以完成.

今天关于Gradle-与外部项目一起进行多项目?gradle多项目构建的介绍到此结束,谢谢您的阅读,有关Android Gradle将外部库和嵌套的外部库添加到项目、android – 如何创建一个没有Gradle支持的新项目?、android-Gradle多项目、android-由于gradle项目同步进行中而无法构建项目等更多相关知识的信息可以在本站进行查询。

本文标签: