gradle配置不成功,求助贴

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了gradle配置不成功,求助贴相关的知识,希望对你有一定的参考价值。

近项目遇蛮烦问题Maven约定标准Java项目代码结构:
project
--src
--main
--java
--resources
--test
--java
--resources

‘gradle idea’构建intelliJ项目文件自帮忙设置所Source RootTest Source Root我工作部门我希望测试unitintg2类别更加容易区测试目同提供Build Pipeline别运行同类别测试能力我部门内标准Java项目结构:
project
--src
--main
--java
--resources
--test
--common
--java
--unit
--java
--resources
--intg
--java
--resources

目录结构我剩2问题要解决:
1. 何区运行IntegrationTestUnit Test
2. 何保证‘gradle idea’需重新设置Test Source Rootgradle具备识别新代码结构能力

何写Gradle Plugin

语言:
JavaGroovyScala都推荐用Groovy,毕竟Gradle本质说用Groovy写DSL使用Groovy更致点

注入式:
Gradle支持3种形式定制Plugin注入:

1. 直接Plugin源代码直接写Build Script面
2. Pluigin源代码写rootProjectDir/buildSrc/src/main/groovy目录
3. 用单独project写Plugin源代码jar依赖形式注入项目

觉都想要自写Plugin定项目公用Plugin否则直接Plugin代码直接写脚本要定制Plugin我看定需要单独jar形式注入

写project-structure Plugin:
Gradle写Plugin非简单首先添加项目依赖我使用Groovy写插件所添加localGroovy依赖

Gradle代码
apply plugin: 'groovy'

dependencies
compile gradleApi()
compile localGroovy()


写Plugin实现代码实现代码需要实现Plugin接口即我实现代码做两件事定制项目代码结构二添加integrationTest Task该Task运行*IntegrationTest.class, Build Pipeline阶段运行Unit TestIntegrationTest

Groovy代码
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.api.tasks.testing.Test

class ProjectStructurePlugin implements Plugin
@Override
void apply(Project project)
project.logger.info "Configuring Project Structure for $project.name"

project.configurations
integrationTestCompile extendsFrom testCompile
integrationTestRuntime extendsFrom integrationTestCompile, testRuntime

configureSourceSets(project)
addIntegrationTestTask(project)


private void addIntegrationTestTask(Project project)
Test intgTest = project.getTasks().create("integrationTest", Test.class);
intgTest.testClassesDir = project.sourceSets.integrationTest.output.classesDir
intgTest.includes = ["**/*IntegrationTest.class"]
intgTest.inputs.dir 'src'
intgTest.outputs.dir project.sourceSets.integrationTest.output.classesDir
project.check.dependsOn project.integrationTest
intgTest.dependsOn project.test


private void configureSourceSets(Project project)
project.sourceSets
test
java
srcDir 'src/test/unit/java'
srcDir 'src/test/common/java'

resources
srcDir 'src/test/unit/resources'



integrationTest
java
srcDir 'src/test/intg/java'
srcDir 'src/test/common/java'

resources
srcDir 'src/test/intg/resources'

compileClasspath = project.sourceSets.main.output + project.sourceSets.test.output + project.configurations.integrationTestCompile
runtimeClasspath = output + compileClasspath + project.configurations.integrationTestRuntime





接着项目src/main/resources/META-INF/gradle-plugins目录创建文件:.properties,该文件指定Plugin实现类:

Java代码
implementation-class=com.xianlinbox.plugins.ProjectStructurePlugin

项目使用该Plugin
首先需要build.gradle脚本引入该Pluginjar包依赖文件形式更推荐jar包发布Maven库Maven依赖形式注入本例使用本文件依赖:

Groovy代码
buildscript
dependencies
classpath fileTree(dir: 'libs', include: '*.jar')


注入编写插件注意该插件必须java plugin起使用其使用SourceSets属性该插件引入进:

Groovy代码
apply plugin: 'java'
apply plugin: 'project-structure'

插件通‘gradle test’‘gradle integrationtTest’区别运行UnitTestIntrgrationTest

解决自设置Test Source Root问题需要build.gradleideaModule Task增加识别Test Source Root能力即:

Groovy代码
apply plugin: 'idea'
...
idea
module
testSourceDirs += file('src/test/intg/java')
testSourceDirs += file('src/test/intg/resources')



我写Plugin设置Project-Structrue:

Groovy代码
......
compileClasspath = project.sourceSets.main.output + project.sourceSets.test.output + project.configurations.integrationTestCompile
runtimeClasspath = output + compileClasspath + project.configurations.integrationTestRuntime
project.idea
module
testSourceDirs = testSourceDirs + new File('src/test/intg/java') + new File('src/test/intg/resources')


1、安装
Gradle安装Maven便需要载( )==》解压==》配置环境变量(GRADLE_HOME & PATH)配置环境变量记使用 source命令使新环境变量效配置功命令行通 gradle -v"验证否安装功

2、Gradle编译Maven风格java项目
首先项目根目录创建"build.gradle"文件编译java项目需要使用gradlejava插件
Groovy代码
apply plugin: 'java'
,要集maven功能需要添加maven插件
Groovy代码
apply plugin: 'maven'[

接着配置项目Repository风格
Groovy代码
repositories
mavenCentral();

面例使用默认maven央库想用自本库通式配置
Groovy代码
def localMavenRepo = 'file://' + new File(System.getProperty('user.home'), '.m2/repository').absolutePath
repositories
// Use local Maven repo location. We don't need this if we only want to install
// an artifact, but we do need it if we want to use dependencies from the local
// repository.
mavenRepo urls: localMavenRepo
mavenCentral()


再配置项目依赖第三库配置模板:
Groovy代码
dependencies
compile group: '',name:'',version:''

举例假设项目依赖4.10版本junit配置
Groovy代码
compile group: 'junit',name:'junit',version:'4.10'
另外Depencies按式简写
Groovy代码
compile '::'

Groovy代码
compile 'junit:junit:4.10'

何自项目发布Repository
Groovy代码
uploadArchives
repositories
mavenDeployer
repository(url: "file://localhost/tmp/myRepo/")

参考技术A

    1,首先当然是到官网gradle.org下载最新的gradle版本了
    2,下载完成后,放到任意的位置,我的是在D:/gradle-1.1,然后需要放到换进配置,步骤是右键“计算机”-“属性”,进入“高级配置”,选择“环境变量”,点击”新建“,配置”GRADLE_HOME“

以上是关于gradle配置不成功,求助贴的主要内容,如果未能解决你的问题,请参考以下文章

Mac安装Gradle及配置

Gradle安装和配置代理

Gradle的安装与配置以及错误

Linux下Nexus 3私服配置及gradle配置使用

eclipse配置gradle

Gradle的安装与配置+eclipse里安装Gradle插件