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

gradle:为什么所有sourceSets都没有jar任务

Gradle是一种基于Groovy语言的构建工具,用于自动化构建、测试和部署软件项目。它具有灵活、可扩展和高度可配置的特点,可以满足各种项目的构建需求。

在Gradle中,sourceSets用于定义项目的源代码集合。每个sourceSet可以包含多个源代码目录,例如主代码目录、测试代码目录等。每个sourceSet都有一组任务,用于编译、打包和发布源代码。

在默认情况下,Gradle为每个sourceSet创建了一些常用的任务,例如编译源代码的任务、生成文档的任务等。然而,并没有为每个sourceSet创建jar任务,这是因为Gradle默认假设项目只有一个主要的源代码集合,即main sourceSet,它会自动为该sourceSet创建jar任务。

如果你想为其他sourceSets创建jar任务,你可以通过自定义任务来实现。以下是一个示例:

代码语言:groovy
复制
sourceSets {
    mySourceSet {
        java {
            srcDir 'src/mySourceSet/java'
        }
    }
}

task myJar(type: Jar) {
    from sourceSets.mySourceSet.output
    archiveFileName = 'myJar.jar'
}

在上面的示例中,我们创建了一个名为mySourceSet的sourceSet,并指定了该sourceSet的源代码目录。然后,我们创建了一个名为myJar的自定义任务,该任务将mySourceSet的输出目录作为输入,并将其打包为名为myJar.jar的JAR文件。

需要注意的是,以上示例中的路径和文件名仅作为示意,实际应根据项目的结构和需求进行调整。

总结起来,所有sourceSets都没有默认的jar任务是因为Gradle默认只为主要的sourceSet创建jar任务。如果需要为其他sourceSets创建jar任务,可以通过自定义任务来实现。

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

相关·内容

【Android Gradle 插件】自定义 Gradle 任务 ② ( 在 Terminal 面板中执行 gradlew task 命令显示所有任务 | 命令行输出所有任务 | 单独执行指定任务 )

文章目录 一、在 Terminal 面板中执行 gradlew task 命令显示所有任务 二、执行 gradlew task --all 命令在命令行输出所有任务 三、单独执行指定的任务 Android...https://developer.android.google.cn/studio/build/dependencies 一、在 Terminal 面板中执行 gradlew task 命令显示所有任务...---- 在 Terminal 面板中执行 gradlew task 命令显示所有任务 : 在每个任务之后都有该任务的具体作用 ; D:\002_Project\002_Android_Learn\Android_UI...actionable task: 1 executed D:\002_Project\002_Android_Learn\Android_UI> 二、执行 gradlew task --all 命令在命令行输出所有任务...---- 执行 gradlew task --all 命令 , 可以输出所有任务 , 主要是在 执行 gradlew task 命令的基础上 , 将 other 分组下的任务显示出来 ; 三、单独执行指定的任务

1.7K10

Gradle Plugin for Android Development User Guide 1

[Gradle会监视一个任务的输入和输出,重复运行build结果都没有变化的话Gradle会提示所有任务都是UP-TO-DATE,这样可以避免不必要的build操作] Java project tasks...[任务jar直接或者间接地依赖其他的任务,例如用来编译Java代码的任务classes; 测试代码是由testClasses 任务来编译的,但是你不需要去调用这个task,因为test 任务依赖于testClasses...和 classes 任务] The jar task itself will depend directly and indirectly on other tasks: classes for instance...[Android插件还会对所有build type创建它们的install/uninstall 任务,只要它们可以被安装,安装需要签名] Basic Build Customization The Android...Multi project setup [使用multi-project setup可以使得Gradle项目依赖其他的Gradle项目,它通常是通过将所有的项目作为某个指定的根项目的子目录来实现的。]

78230

【Android Gradle 插件】将自定义 Gradle 插件上传到自建 Maven 仓库 ① ( Maven 仓库上传源码上传源码设置 | 自定义源码打包任务 | 自定义文档打包任务 )

文章目录 一、Maven 仓库上传源码设置 二、自定义源码打包任务 ( Jar 类型 Gradle 任务 ) 三、执行自定义源码打包任务 Android Plugin DSL Reference 参考文档...任务中完成 ; 任务的类型是 Jar 任务 , 将源码打成 jar 包 ; org.gradle.api.tasks.bundling.Jar自带任务 ( 任务类型 ) 文档 : https://docs.gradle.org..., 这里设置的是 main 目录下的所有文件 ; 源码如下 : // 指定自定义 Gradle 插件的版本号 version '0.1' // 自定义源码打包任务 // 自定义 Jar 类型的 Gradle...main 目录下的所有文件 from sourceSets.main.allSource } 三、执行自定义源码打包任务 ---- 定义完上述任务后 , 同步构建脚本 , 发现在 Gradle...面板 中已存在 该 Gradle 任务 sources2Jar ; 在 Gradle 面板中执行该任务 , 或者在 Terminal 面板中执行 gradlew sources2Jar 命令 ,

60510

【Android Gradle 插件】将自定义 Gradle 插件上传到自建 Maven 仓库 ③ ( 配置上传工件 | 将 Gradle 插件 jar 包、源码、文档上传到本地Maven 仓库 )

自带任务 ( 任务类型 ) 文档 : https://docs.gradle.org/current/dsl/org.gradle.api.tasks.bundling.Jar.html Gradle...② ( java 和 groovy 插件自带文档任务 | 自定义文档打包任务 | 生成文档包 ) 中 , 分别使用 自定义 Jar 类型 Gradle 任务 将 插件源码 和 插件文档 打包到了 jar...// 自定义 Jar 类型的 Gradle 任务 // 将源码打包到 jar 包中 task sources2Jar(type: Jar) { // 指明要打的 jar 包名称 //...' // 设置打包哪些文件 // 这里设置的是 main 目录下的所有文件 from sourceSets.main.allSource } // 自定义文档打包任务 // 自定义...Jar 类型的 Gradle 任务 // 将文档打包到 jar 包中 task document2Jar(type: Jar, dependsOn: [javadoc, groovydoc]) {

1.2K20

【Android Gradle 插件】将自定义 Gradle 插件上传到自建 Maven 仓库 ⑧ ( 设置 Gradle 插件模块 | 将 Gradle 插件上传到自建 Maven 仓库 )

AndroidSourceDirectorySet ( build.gradle#android#sourceSets#aidl/assets/java/jni/jniLibs 配置 ) 文档位置...自带任务 ( 任务类型 ) 文档 : https://docs.gradle.org/current/dsl/org.gradle.api.tasks.bundling.Jar.html Gradle...// 自定义 Jar 类型的 Gradle 任务 // 将源码打包到 jar 包中 task sources2Jar(type: Jar) { // 指明要打的 jar 包名称 //...' // 设置打包哪些文件 // 这里设置的是 main 目录下的所有文件 from sourceSets.main.allSource } // 自定义文档打包任务 // 自定义...Jar 类型的 Gradle 任务 // 将文档打包到 jar 包中 task document2Jar(type: Jar, dependsOn: [javadoc, groovydoc]) {

93930

Garadle 插件扩展属性&源集SourceSets

插件扩展 原因 为什么需要插件扩展?插件内部执行任务的时候需要依赖外界脚本传入的值进行相对应的构建。 也就是说插件里面的属性需要从外部拿到,外部去设置这些属性。...在构建阶段执行build.grade时设置属性值: gradle中有一个和项目相关联的ExtensionContainer对象,可以通过project.extension.属性名称获取,脚本中直接设置...简写为ext,这就是为什么可以直接在脚本中拿到ext里面的属性值 为什么可以使用闭包设置扩展属性呢?...main目录包含项目源代码,用于编译成jar文件 test目录包含单元测试代码,用于编译后使用junit或testng执行 可设置属性 在build.gradle中设置sourcesets闭包(可查看之前的闭包文章...我们创建工程的时候也没有看见sourcesets闭包是吧? 答案是插件中帮我们创建了源集,看下图代码即可理解。

35320

Garadle 插件扩展属性&源集SourceSets

theme: condensed-night-purple 插件扩展 原因 为什么需要插件扩展?插件内部执行任务的时候需要依赖外界脚本传入的值进行相对应的构建。...简写为ext,这就是为什么可以直接在脚本中拿到ext里面的属性值 为什么可以使用闭包设置扩展属性呢?...gradle自带插件 下图列出了不同插件对应的插件入口类,接下来读者可通过这些入口类找到这些插件配置了哪些扩展属性 grovvy学习之源集Sourcesets 定义 源集表示一组用于编译执行的源文件,...main目录包含项目源代码,用于编译成jar文件 test目录包含单元测试代码,用于编译后使用junit或testng执行 可设置属性 在build.gradle中设置sourcesets闭包(可查看之前的闭包文章...我们创建工程的时候也没有看见sourcesets闭包是吧? 答案是插件中帮我们创建了源集,看下图代码即可理解。

45320

【Android Gradle 插件】将自定义 Gradle 插件上传到自建 Maven 仓库 ④ ( 默认生成的 pom 文件 | Maven 中的 pom 配置 | 自定义 pom 文件节点 )

/gradle/api/DefaultTask.html org.gradle.api.tasks.Delete 自带任务 ( clean 任务类型 ) 文档 : https://docs.gradle.org...自带任务 ( 任务类型 ) 文档 : https://docs.gradle.org/current/dsl/org.gradle.api.tasks.bundling.Jar.html Gradle...// 自定义 Jar 类型的 Gradle 任务 // 将源码打包到 jar 包中 task sources2Jar(type: Jar) { // 指明要打的 jar 包名称 //...' // 设置打包哪些文件 // 这里设置的是 main 目录下的所有文件 from sourceSets.main.allSource } // 自定义文档打包任务 // 自定义...Jar 类型的 Gradle 任务 // 将文档打包到 jar 包中 task document2Jar(type: Jar, dependsOn: [javadoc, groovydoc]) {

1.4K10

第六章 Java Gradle插件

还有assemble任务,该任务不会执行单元测试,只会编译和打包,这个任务在Android里也有,执行它可以打apk包,所以它不止会打jar包,其实它算是一个引导类的任务,根据不同的项目类型打出不同的包...还有check任务,它只会执行单元测试,有时候还会做一些质量检查,不会打jar包,也是个引导任务。 javadoc任务,可以为我们生成java格式的doc api文档。...Java插件在Project下为我们提供了一个sourceSets属性以及一个sourceSets {}闭包来访问和配置源集。...以上这些是对所有Java项目都适用的任务,对于内置的main和test源集甚至我们自己的新增的源集也新增了一些任务 运行任务的时候,列表中的任务名称中的sourceSet要换成你的源集的名称,比如main...Gradle的根项目可以理解为一个所有子项目的容器,我们可以在根项目中遍历所有的子项目,在遍历的过程中为其配置通用配置。

1.1K10

【Android Gradle 插件】将自定义 Gradle 插件上传到自建 Maven 仓库 ② ( java 和 groovy 插件自带文档任务 | 自定义文档打包任务 | 生成文档包 )

文章目录 一、java 和 groovy 插件自带文档任务 二、自定义文档打包任务 ( Jar 类型 Gradle 任务 ) 三、生成文档 Jar 包 Android Plugin DSL Reference...( Jar 类型 Gradle 任务 ) ---- 在该 自定义 Jar 类型的 Gradle 任务 中 , 将源码打包到 jar 包中 ; baseName : 指明要打的 jar 包名称 , 最终打包的名称是...任务的输出目录 ; 源码如下 : // 自定义文档打包任务 // 自定义 Jar 类型的 Gradle 任务 // 将文档打包到 jar 包中 task document2Jar(type: Jar)...类型的 Gradle 任务 // 将文档打包到 jar 包中 task document2Jar(type: Jar, dependsOn: [javadoc, groovydoc]) { //...执行 document2Jar 任务 , 或者在 Terminal 面板中执行 gradlew document2Jar 命令 , 即可执行上述 Gradle 任务 ; 由于设置了依赖 , dependsOn

53330

Gradle入门指南

与Maven的区别: Maven的重点是依赖管理,Gradle则更加注重任务定义和执行过程的控制。 Gradle使用Groovy语言作为脚本语言,而Maven使用XML。...为什么使用Gradle: 简单易学:Gradle使用简单明了的DSL语言,易于学习和使用。 高度灵活:Gradle可以根据项目需要定制各种不同的构建流程。...} dependencies { compile 'commons-lang:commons-lang:2.6' testCompile 'junit:junit:4.12' } sourceSets...任务 在命令行中输入以下命令,执行Gradle任务gradle [task name] 例如,以下命令将编译Java源代码并生成可执行的JAR文件: gradle build 如何集成: Gradle.../gradlew build 构建完成后,你可以在build/libs目录下找到生成的JAR文件,并使用以下命令运行该应用程序: java -jar build/libs/my-application.jar

1K20

Publish Gradle Android Library to jCenter Repository

Maven Central仓库,现在改为使用jCenter仓库,感兴趣可以阅读Android Studio – Migration from Maven Central to JCenter这篇文章了解下为什么...(1)每一次Gradle的构建(build)都包含一个或者多个项目(project),每个项目中又包含一个或者多个任务(task) (2)Gradle的设计理念是:所有有用的特性都由Gradle插件提供...Gradle插件能够在项目中添加新任务;为新加入的任务提供默认配置;加入新的属性,可以覆盖插件的默认配置属性;为项目加入新的依赖。...另外添加两个重要的插件,其中android-maven-plugin插件用于生成JavaDoc和Jar文件等,gradle-bintray-plugin插件是用于上传项目到Bintray。...另外,如果提示xxx.jar等文件找不到,可以先执行install任务,然后再执行bintrayUpload任务

92830

发布开源库到JCenter的一些问题记录

跟 2 的理由类似,这个脚本是用于将本地生成的 pom,aar 等文件上传至 bintray 仓库,但这个脚本的运行需要依赖于一些 android {} 块的属性配置;所以并不是所有 apply from...原因:执行 gradlew install 构建过程中出错,这是由于执行生成 javadoc 过程中出问题,至于为什么出问题可以具体查看日志,例如我这里: ?...那么就需要在本地新建一个 installv1.gradle 文件,然后将这个脚本文件里的代码拷贝进这个新建的文件中: //将下面所有的 javadoc task 注释掉,不用这个功能 apply plugin...) { classifier = 'sources' from android.sourceSets.main.java.srcDirs } //1....这里是第1处 // task javadoc(type: Javadoc) { // source = android.sourceSets.main.java.srcDirs //

1.2K90

【Android Gradle 插件】自定义 Gradle 插件模块 ③ ( Gradle 插件模块发布配置 | Windows 本地 Maven 仓库地址 | 将插件上传到本地 Maven 仓库 )

AndroidSourceDirectorySet ( build.gradle#android#sourceSets#aidl/assets/java/jni/jniLibs 配置 ) 文档位置...( build.gradle#android#sourceSets#manifest 配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.api.AndroidSourceFile.html.../gradle/api/DefaultTask.html org.gradle.api.tasks.Delete 自带任务 ( clean 任务类型 ) 文档 : https://docs.gradle.org.../current/dsl/org.gradle.api.tasks.Delete.html org.gradle.api.tasks.bundling.Zip 自带任务 ( 任务类型 ) 文档 :...面板中的 publishPluginPublicationToMavenLocal 任务 , 即可将该 Module 生成的 jar 包上传到本地 Maven 仓库中 ; 执行过程如下 : 18:04

91110
领券