簡體   English   中英

在一個項目中使用多個Jars平面項目

[英]Gradle flat project with multiple Jars in one project

新手Gradle query.Consider跟隨項目的結構

Project
   |
    -component_1

   |
    -component_2

我想從每個組件源生成一個jar,它位於src目錄下。 請注意,這不是一個多項目場景,而是一種多組件。 我怎么能在Gradle(1.6)中做到這一點

更新:

需要單個構建文件,而不是每個組件具有單獨的構建

你提到一些組件相互依賴,所以我也想知道為什么你不想將它作為一個多項目構建來實現。 現在,讓我們假設您的所有組件都是獨立的Gradle項目。 鑒於它們生成了一個JAR文件,似乎它們是Java項目。 我將為每個項目創建一個build.gradle文件。

.
└── your-project
    └── component1
    │   ├── build.gradle
    │   └── src
    └── component2
        ├── build.gradle
        └── src

對於每個項目,我們將應用Java插件。 這個插件引入的標准約定的唯一區別是你的源文件位於目錄src而不是src/main/java 要配置它,您需要將所有內容放入build.gradle文件中,其中包含以下內容:

apply plugin: 'java'

sourceSets {
   main {
      java {
         srcDirs = ['src']
      }
   }
}

如果為任何項目執行gradle build ,Gradle將編譯生產和測試源代碼,運行單元測試並在目錄build/libs下組裝JAR文件。

編輯:

您可以像Matt在他的評論中解釋的那樣實現這一點,也可以采用多項目構建方法。 我把以下代碼示例放在一起給你一個想法。 在項目的根級別創建兩個文件: build.gradlesettings.gradle

.
└── your-project
    ├── build.gradle
    ├── settings.gradle
    ├── component1
    │   └── src
    └── component2
        └── src

settings.gradle文件中包含屬於您的構建的項目,如下所示:

include 'component1', 'component2'

然后在build.gradle文件中,只需將項目定義放入subprojects配置塊中即可定義一次。 這意味着它適用於您構建的所有子項目。 使用此方法,您可以定義常見行為,而無需重復代碼。

subprojects {
   apply plugin: 'java'

   sourceSets {
      main {
         java {
            srcDirs = ['src']
         }
      }
   }
}

暫無
暫無

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

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