首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Gradle java 9+资源文件夹名称冲突

Gradle是一种基于Groovy语言的构建工具,用于自动化构建、测试和部署软件项目。它支持多种编程语言,包括Java。Java 9及以上版本引入了模块化系统,其中一个重要的变化是资源文件夹的命名冲突。

在Java 9之前,Gradle使用src/main/resources目录作为项目的资源文件夹。但是,从Java 9开始,Java模块系统引入了一个新的资源文件夹命名约定,即使用src/main/resources目录作为非模块化代码的资源文件夹,而使用src/main/resources/MODULE_NAME目录作为模块化代码的资源文件夹。

这种命名冲突可能导致Gradle构建失败或资源文件无法正确加载。为了解决这个问题,可以通过在Gradle构建脚本中进行配置来指定资源文件夹的名称。

以下是一个示例的Gradle构建脚本,用于解决Gradle java 9+资源文件夹名称冲突的问题:

代码语言:txt
复制
sourceSets {
    main {
        resources {
            if (JavaVersion.current().isJava9Compatible()) {
                srcDirs = ['src/main/resources', 'src/main/resources/non-modular']
            } else {
                srcDir 'src/main/resources'
            }
        }
    }
}

在这个示例中,我们使用了sourceSets配置块来定义资源文件夹的名称。如果当前使用的Java版本是Java 9及以上版本,我们将srcDirs属性设置为包含两个目录:src/main/resources和src/main/resources/non-modular。这样可以避免与模块化代码的资源文件夹名称冲突。如果当前使用的Java版本是Java 9以下版本,我们只需将srcDir属性设置为src/main/resources即可。

这样配置后,Gradle将根据Java版本自动选择正确的资源文件夹路径,确保资源文件能够正确加载。

关于Gradle的更多信息和用法,请参考腾讯云的Gradle产品介绍页面:Gradle产品介绍

请注意,以上答案中没有提及亚马逊AWS、Azure、阿里云、华为云、天翼云、GoDaddy、Namecheap、Google等流行的云计算品牌商,以符合问题要求。如需了解更多相关信息,建议参考官方文档或咨询相关厂商。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

杂篇:一代版本一代神

零、前言 本文主要包括: |---Gradle简介,下载,安装 |---Groovy语言的简单认识 |---Gradle构建java项目 |---Gradle构建脚本的书写 |---Gradle构建java...多模块项目 |---Gradle在Android中的应用 |---最后写一个创建文件夹的小插件 一、Gradle简介 1.我与Gradle的邂逅 百分之八十的Gradle使用者应该都是从AndroidStudio...4.1:版本冲突简介 okhttp:3.13.1依赖了okio:1.17.2,如果项目中再依赖okio:2.2.2就会版本冲突 默认情况下版本冲突时,Gradle会自动使用最高版本,所以我们并不怎么烦神...这里以布局为例,其他资源文件夹也一样 布局分包.png android { ......文件 .gradle 文件一直被我认为是神圣的存在,不能乱改,更别提自己创建了 骑士gradle文件是可以相互引用的,下面通过创建文件夹小插件来说明 文件夹插件.png ---->[mkdir.gradle

1.2K20

创建Android库的方法及Android .aar文件用法小结

与 JAR 文件不同,AAR 文件可以包含 Android 资源和一个清单文件,这样,除了 Java 类与方法外,您还可以捆绑布局和可绘制对象等共享资源。...在 Gradle 项目同步完成后,库模块将显示左侧的 Project 面板中。如果您未看到新模块文件夹,请确保将视图切换为 Android 视图。...资源合并冲突 构建工具会将库模块中的资源与相关应用模块的资源合并。如果在两个模块中均定义了给定资源 ID,将使用应用中的资源。...如果多个 AAR 库之间发生冲突,将使用依赖项列表首先列出(位于 dependencies块顶部)的库中的资源。...为了避免常用资源 ID 的资源冲突,请使用在模块(或在所有项目模块)中具有唯一性的前缀或其他一致的命名方案。

2.9K10

android开发入门

今天学习android开发‘ 点击finish 等待gradle构件 新建详情 应用名称:在桌面显示的app的名称,在后续的变成中可以修改。...工程名称:显示在Eclipse中,用来标示工程的名称。 命名空间:应用程序文件的命名空间。在手机系统内,应用的命名空间应该唯一。...三、简述Android应用程序中,各个文件以及文件夹的作用 1、AndroidManifest.xml:描述应用的基本特性(权限声明、应用配置版本、应用程序组件等)。...3、res:应用程序资源目录。 drawable-hdpi/:图标资源目录,适应于high-density (hdpi) 屏幕。...编译代码后,出现错误-“条目名称’res / color / material_on_surface_disabled.xml’发生冲突”没有其他规定。

1K30

知识点——Java中线程安全问题(共享资源冲突问题)和守护线程

线程安全问题–共享资源能使用问题 例如: > 100张票 淘票票CGV 美团 猫眼 三个销售渠道,100张票是一个共享资源!!! 三个销售渠道,可以认为是三个销售线程!!!...问题一: 100张票共享资源问题,选什么来保存? 局部变量: 在方法内,如果run方法执行,存在,run方法当前执行完毕,销毁。...每一个线程对象中都有run方法,无法满足共享问题 成员变量: 每一个线程对象中,都有一个对应的成员变量,非共享资源。...【共享资源】 问题二: 资源冲突问题 线程之间会相互抢占,而且抢占频率很快,有可能会导致一张票卖了三次,也就是资源冲突问题 ? 2....2.3 Lock锁 Java提供了一个对于线程安全问题,加锁操作相对于同步代码块和同步方法更加广泛的一种操作方式。 对象化操作。

76630

Gradle学习笔记 使用插件

Java插件 在build.gradle文件中添加以下一句,即可启用Java插件。Java插件用于构建普通的Java项目。...apply plugin: 'java' Java项目应该包括以下文件夹文件夹含义src/main/java项目代码文件夹src/main/resources项目资源文件夹src/test/java...项目测试代码文件夹src/test/resources项目测试资源文件夹 之后,我们就可以使用java插件提供的大量任务了。...这里列出一些常用的: 任务名称描述compileJava编译代码processResources将资源文件复制到生产文件夹中classes将生产文件夹中的类和资源打包compileTestJava编译测试代码...processTestResources将测试资源复制到测试资源文件夹中testClasses将测试类和资源打包jar打包成jar包javadoc生成javadoc文档clean清除生成文件夹和其中的所有内容

51120

Android工程师,不理解模块化、组件化、插件化的区别怎么行?

面临的问题 问题1:多业务模块下的统一配置 问题2:Application分发 问题3:资源冲突 注意:不同的业务模块禁止彼此依赖 解决方案1: 不同的模块(20个业务模块)的配置,必须做到统一配置。...在Java代码实现统一配置,SO Easy ~ 但是在gradle中呢 ? 那就是定义一个配置文件,统一存放需要配置的项。...android 为Map的名称,你可以用你自己的命名,但是注意不要和系统变量冲突 以上是统一变量的定义,配置文件config.gradle。 配置文件定义好了,那么如何引入呢?...解决方案3: 资源冲突解决办法有两个: 1) 公共资源建议由公共模块管理 2) 模块私有资源,添加前缀限制 (只能解决xml冲突) 3)资源谨慎命名 资源命名只能在开发中加以注意, 通过以上共有资源和前缀极大可能的保证资源不会冲突...'src/main/java' } } } 以上配置在相应Module中的build.gradle的android下 本来打算出这篇为Router

1.4K60

从构建工具看 Android APK 编译打包流程

生成BuildConfig文件,资源文件 在引入Gradle编译工具之后,Apk的打包流程就多了这么一步,生成BuildConfig文件和资源文件。...也就是会根据build.gradle里面配置的内容生成相应的java代码或者res代码。...因为在项目中会依赖不同的库、组件,也会有多渠道的需求,所以merge这一步操作就是将不同地方的资源文件进行整合。 多个manifest文件需要整理成一个完整的文件,所以如果有属性冲突这一步就会报错。...首先,这一步会生成辅助文件,比如R.java(R文件),R文件大家应该都比较熟悉,就是一个资源索引文件,我们平时引用也都是通过R.的方式引用资源id。...但是缺点也很明显,META-INFO文件夹不会被签名,所以美团针对这种签名方式设计了一种多渠道打包方案: 利用pythone在META-INFO文件夹中创建一个文件,其名称就是渠道名,然后用java去读取文件名获取渠道

3.7K30

Gradle构建脚本的基本结构和语法》

假设我们有一个简单的Java应用程序,它包含一个主类 Main.java 和一个依赖的库 Library.java。我们将使用Gradle来构建这个项目。...首先,创建一个新的项目文件夹,并在其中创建以下文件: src/main/java/Main.java - 主类文件 public class Main { public static void...我们还定义了项目的基本信息,添加了一个库依赖 org.slf4j:slf4j-api,以及通过 application 配置指定了主类的名称。 现在,我们可以使用命令行来执行Gradle任务。...在项目文件夹中,打开终端并运行以下命令: 构建项目: ./gradlew build 这将编译项目并生成构建产物,位于 build/libs 目录下。 运行应用程序: ....如何解决依赖冲突? 当项目依赖的库有不同版本时,可能会出现依赖冲突。可以通过以下方法解决: 使用 ./gradlew dependencies 命令查看项目的依赖关系,找出冲突的库。

16710

Gradle基础操作一

首先,创建一个 Zip 压缩文件,并指定压缩文件名称,如下代码所示: apply plugin: 'java' version=1.0 task myZip(type: Zip) { from 'src...Gradle 来说这里就有冲突了 解决方案 方案一:default 默认下,Gradle 会使用最新版本的 jar 包【考虑到新版本的 jar 包一般都是向下兼容的】,实际开发中,还是建议使用官方自带的这种解决方案...方案二: exclude Gradle 也为我们提供了一系列的解决依赖冲突的方法: exclude 移除一个依赖,不允许依赖传递,强制使用某个版本。...中引入: apply from :"version.gradle" // 然后便可以使用 task taskVersion{ doLast{ println "公司名称为:${company...修改文件夹名称,然后在项目根目录下的setting.gradle文件中使用include引入。

32420

Gradle 5.0 更新介绍

前些天我看到gradle 5 rc版的时候还在想正式版什么时候出,没想到rc版没过几天正式版就出来了。那么正好,就来介绍一下gradle 5.0正式版加入的一些新功能吧。...依赖版本对齐 项目中引用的第三方包多了,难免出现引入了同一个包的不同版本,导致冲突的情况发生。依赖版本对齐这个功能就是为了解决这种情况而出现的。...配置项目和代码包名,现在init任务提供了参数来设置项目和源代码的包名; 创建资源文件夹,现在init任务还会创建空的resource文件夹; 创建.gitignore文件。...Java 11支持 现在可以使用Java 11来运行Gradle。 这个功能其实也挺重要的,之前在升级到Java 11的时候我发现一些Gradle构建失败了,现在可以正常运行它们了。...官方文档有一个很长的列表,这里只简单列出一部分: 之前在4.0中提升的特性 并行任务执行 持续构建 组合构建 java-gradle-plugin插件 distribution插件 jacoco插件 更新日志还有很多地方我没有介绍

99440

Android -Gradle依赖导入及相关知识

支持java8。 支持kotlin,默认安装相关插件。 gradle编译速度有所加速。...Project build.gradle 咱们一个一个解释其含义: buildscript:用来加载gradle脚本自身需要使用的资源,可以声明的资源包括依赖项、第三方插件、maven仓库地址等 repositories...transitive = true } 当然我们这里的exclude 的‘abc’等内容是不存在的,只是给大家演示,由此也引出了exclude的一个作用,避免依赖包冲突。...那我们如何判断是那几个library的文件冲突了呢? 首先studio会先报出该错误,在log日志中会有某个moudle的信息。然后我们需要一个命令: ....image arr文件的依赖 首先先声明aar包存放的路径声明 repositories { flatDir { dirs 'libs' //此处声明存放路径为lib文件夹

99420

Gradle必知必会的实战技巧

Gradle模块化 Library模块Gradle代码复用 资源文件分包 AAR依赖与源码依赖快速切换 Gradle依赖树查询 有时我们在分析依赖冲突时,需要查看依赖树,我们常用的查看依赖树的命令为...读者可根据项目实际情况判断是否适合抽取basic.gradle使用 资源文件分包 随着项目越来越大,项目中的资源文件也越来越大,比如layout与drawable文件夹下的文件数量常常可达几百甚至上千个...我们能不能像代码一样,对资源文件进行分包呢?...答案是可以的,主要是利用gradle的sourceSets属性 我们可以将资源文件像代码一样按业务分包,具体操作如下 新建res_xxx目录 ?...,这样做主要有几点好处 按业务分包查找方便,结构清晰 strings.xml等key-value型文件多人修改可以减少冲突 当删除模块或做组件化改造时资源文件删除或迁移方便,不必像以前一样一个个去找 AAR

1.4K20
领券