簡體   English   中英

在gradle中獲取任務的項目名稱

[英]Get project name of task in gradle

我有一個多項目構建。 子項目采用樹形結構(非平面)。 在root build.gradle文件中,我有一個方法可以為編譯階段做一些常見的事情。

我想為每個子項目分別設置目標目錄。 因此,當我編譯整個項目時,我將為每個子項目擁有自己的工件。 我上面提到的方法進行編譯,因此需要知道它編譯的項目。

如果我使用“gradle:subproject1:subsubproject1:compile”命令,則project.name仍包含根項目名稱。 但我需要在運行時知道調用方法的任務項目。

問題是:

  1. 對於子項目有單獨的目標,這是一個好主意嗎?
  2. 如何在這個方法中理解調用方法的任務項目?

如果在子項目中定義了任務,那么您只需使用project.name來獲取運行任務的項目的名稱。 您可以嘗試一下,例如將以下代碼添加到根項目中的build.gradle:

allprojects {
    task printProjName << {
        println ">> " + project.name
    }
}

然后,執行printProjName任務將產生類似於下面的輸出:

:printProjName
>> Gradle
:projA:printProjName
>> projA
:projB:printProjName
>> projB
:projA:projA1:printProjName
>> projA1
:projA:projA2:printProjName
>> projA2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM