顯示具有 gradle 標籤的文章。 顯示所有文章
顯示具有 gradle 標籤的文章。 顯示所有文章

2023-02-02

[gradle] 讓多個 project 可以共用相同的 resources

 最近開始把開發專案做不同module 的拆分,但在做測試時需要把相同的 test data 分享給不同的 module 使用。 一開始先選擇在每個module 底下維護自己的一套相關設定,當 module 多的時候發現這樣維護太累了. 

接下來透過共用外部一個folder 來使用,所以先選擇會動的方式,使用絕對路徑方式來處理相關的 resource file. 


最終版本,透過 gradle config 來達到這樣一個作法. 看了很多做法,也試試看是否可以使用. 最終使用 新增一行gradle script 來解決. 


sourceSets.test.resources.srcDir file("$rootDir/$commonFolder")

2016-03-11

Gradle 使用 subfolder 去包含 submodule

要整理在 Gradle 下面引用其他 Project , 需要在 setting.gradle 指名引用的Project. 要放在subfolder 先找到下面兩篇, 其中第二篇直接指向gradle 自己的setting.gradle
  • http://stackoverflow.com/questions/28440559/gradle-creating-build-directory-in-subfolder 
  • https://github.com/gradle/gradle/blob/master/settings.gradle 
整理結論如下:
1. Sub Project Folder Name : api-log-model
2. Sub Module Name : apiLogModel

範例
 git submodule add git@longtai.com:login/api-login-model.git module/api-login-model

.gitmodules

[submodule "module/api-log-model"]
        path = module/ApiLogModel
        url = git@longtai.com:login/api-login-model.git

setting.gradle

include 'apiLogModel'

rootProject.name = 'TestSubfolder'

rootProject.name = 'gradle'
rootProject.children.each {project ->
    String fileBaseName = project.name.replaceAll("\\p{Upper}") { "-${it.toLowerCase()}" }
    String projectDirName = "subprojects/$fileBaseName"
    project.projectDir = new File(settingsDir, projectDirName)
    project.buildFileName = "${fileBaseName}.gradle"
    assert project.projectDir.isDirectory()
    assert project.buildFile.isFile()
}