当前位置: 首页 > 知识库问答 >
问题:

子目录中项目的配置

淳于博文
2023-03-14

我有一个Gradle多项目构建,看起来像这样:

rootProject
    build.gradle
    settings.gradle
    shared/
        SharedLib
        SharedLib2
    plugins/
        FirstPlugin
        SecondPlugin

我希望将目录< code>shared中的所有项目作为依赖项添加到< code>plugins中的所有项目。

更一般地说:我如何按目录配置子项目?

settings.gradle的内容:

include 'plugins:FirstPlugin', 'plugins:SecondPlugin', 'shared:SharedLib', 'shared:SharedLib2'

build.gradle的内容:

task wrapper(type: Wrapper) { gradleVersion = "2.1" }

allprojects{ apply plugin:"java" }
subprojects {
    group = "eu.test.myGroup"
    repositories { mavenCentral() }
    dependencies { testCompile "junit:junit:4.11" }
}

共有1个答案

岳泳
2023-03-14

将此添加到build.gradle可以实现我想要的目标:

// Define what's a plugin and what's a shared library by directory paths.
// Ignore empty projects
def plugins = subprojects.findAll{ it.path.contains("plugins") && hasSrc(it) }
def sharedLibs = subprojects.findAll{ it.path.contains("shared") && hasSrc(it)}

/** Checks whether a project has a source directory */
def hasSrc(proj){
    return new File(proj.projectDir, "src").exists()
}

// Configure the plugins to depend on the shared libraries at compile time
configure(plugins) { dependencies { sharedLibs.each{compile it} } }
 类似资料:
  • sbt子项目是否可以有自己的目录?或者只有根项目可以用。Scala帮助器文件为构建项目的目录?。下面是我目前的建筑结构。无法访问中定义的对象。 更新:sub-project-1/build.sbt中的以下sbt定义 由于以下错误而失败 Common在/my-project/projects/Common.scala中定义,没有问题。但是Localhost是在/my-project/sub-proj

  • 是否可以设置子gradle项目的父项目。 在我的例子中,所有父子项目都位于文件层次结构中的同一级别。例如 > 代码 > /父项目 构建。格拉德尔 /child项目1 构建。格拉德尔 /子项目2 构建。格拉德尔 这里,项目1依赖于项目2,所以我将它们称为 也在我的设置中。gradle文件,我有 有了它,我可以从父项目文件夹运行任务,但单个任务不会从子项目运行。

  • 配置子项目 到目前为止你已经把ToDo项目根据功能拆分成多个模块,接下来可以用之前的方法来定义构建逻辑,下面有几点需要主要: 根目录和子目录使用相同的group和version属性值 所有的子目录都是Java项目需要Java插件来正常工作,所以你只需要在子项目中应用Java插件 web子项目是唯一一个依赖外部库的项目,它需要打包成WAR而不是JAR 子项目之间可以定义模块依赖 接下来你将学习如何定

  • 我有一个多模块java项目,我想在其中创建jar(bin、source、javadoc),但我很难从子项目配置中的子项目中获取变量。 这是我在根项目中的build.gradle文件: 这就是建筑。gradle文件子项目之一: 当我想运行构建脚本时,我得到了以下异常: 无法获取类型为org的对象的未知属性“mainClassName”。格雷德尔。应用程序编程接口。JAVA档案内部的默认舱单。 在子流

  • 我已经创建了一个laravel项目,并像https://www.mydemosite.org/healthcard 我把所有的文件都上传到了“健康卡”的子目录中。现在我已经在公用文件夹中进行了更改。 > 将索引文件更改为以下内容 需要目录。”/引导/自动加载。php′$app=require_once DIR/引导程序/应用程序。php′; 在此之后,我添加了一个. htaccess文件到root

  • 我正在使用sbt 0.13.12,这是我的项目 在构建中。sbt取决于公共。如果我按sbt project sub1 run运行就可以了。但是,当我将子项目打包为jar文件时,我运行sub1。jar文件中,错误显示sub1无法找到一类公共的。 我的目的是包装sub1。jar和sub2。在每个jar文件中编译带有通用代码的jar。 --更新-- 我尝试作为建议回答。运行时遇到这个问题: 而且,是的!