當前位置:首頁 » 存儲配置 » idea中的gradle怎麼配置環境

idea中的gradle怎麼配置環境

發布時間: 2023-03-05 05:03:11

A. 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.gradleideaMole Task增加識別Test Source Root能力即:

Groovy代碼
apply plugin: 'idea'
...
idea {
mole {
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 {
mole {
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/")
}
}

熱點內容
精通腳本 發布:2025-05-20 14:42:56 瀏覽:384
東方財富經典版如何更改密碼 發布:2025-05-20 14:42:43 瀏覽:943
砸口紅解壓 發布:2025-05-20 14:41:02 瀏覽:510
配置sp失敗怎麼辦 發布:2025-05-20 14:35:08 瀏覽:178
java學到什麼程度 發布:2025-05-20 14:31:54 瀏覽:479
壓縮誤差分析 發布:2025-05-20 14:27:53 瀏覽:97
每秒上億次訪問伺服器怎麼處理 發布:2025-05-20 14:10:07 瀏覽:314
按鍵精靈資料庫操作 發布:2025-05-20 14:08:33 瀏覽:592
360瀏覽器無法訪問網路 發布:2025-05-20 14:05:13 瀏覽:834
存儲伺服器地址錯誤 發布:2025-05-20 14:01:46 瀏覽:912