<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ## 7.1\. The Java plugin 關于 Java 插件 Gradle 是一個通用的構建工具,它能構建任何基于你的構建腳本的東西。開箱即用,當然除非你添加代碼到你的構建腳本里,不然它不會構建任何東西。 很多 Java 項目都有類似的基本流程:編譯 Java 源文件,運行單元測試,創建 JAR 文件。如果你不是把代碼從頭寫到尾,那還能接受。現在有了 Gradle 就不用忍受這些。解決問題的方法就是 插件。插件是 Gradle 配置的擴展,通常是添加配置前的 task。Gradle 裝載很多插件,這樣可以方便共享。其中,Java 插件 就是添加 task 到 project ,會編譯、單元測試你的 Java 代碼,并構建進一個 JAR 文件。 Java 插件 是基于約定的。這意味著,該插件定義了 項目 許多方面的的默認值,如 Java 源文件所在的位置。如果你跟隨你的項目的約定,你一般不需要在你的構建腳本做太多。Gradle 允許您自定義您的項目,如果你不想或不遵循某種公約。事實上,因為 Java 項目的支持作為一個插件來實現的,你不需要使用所有的插件來構建一個Java項目,如果你不想。 后續章節,我們有許多案例關于 Java 插件、依賴管理、多 project。在這一章中,我們想給你一個初始的想法關于如何使用 Java 插件來構建一個 Java 項目。 ## [](https://github.com/waylau/Gradle-2-User-Guide/blob/master/Chapter%2007.%20Java%20Quickstart%20%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B%20Java.md#72-a-basic-java-project-基本的-java-項目)7.2\. A basic Java project 基本的 Java 項目 為了使用 Java 插件,添加下面代碼到構建文件: Example 7.1\. Using the Java plugin build.gradle ~~~ apply plugin: 'java' ~~~ *注意,完整的項目源碼見[https://github.com/waylau/Gradle-2-User-Guide-Demos](https://github.com/waylau/Gradle-2-User-Guide-Demos)?中 java/quickstart* 這個就是 定義一個 Java 項目的全部。它會將 Java 插件應用到項目中,并且添加很多 task。 Gradle 會在 src/main/java 目錄下尋找產品代碼,在 src/test/java 尋找測試代碼 。 另外在 src/main/resources 包含了資源的 JAR 文件, src/test/resources 包含了運行測試。所有的輸出都在 build 目錄下,JAR 在 build/libs 目錄下 ### [](https://github.com/waylau/Gradle-2-User-Guide/blob/master/Chapter%2007.%20Java%20Quickstart%20%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B%20Java.md#721-building-the-project-構建項目)7.2.1\. Building the project 構建項目 在 Java 插件增添了相當多的 task 在 project 中。然而,只有少數的task 是需要在 構建 project 時需要的。最常用的任務是 build task,這就能構建一個完整的 project 。當你運行 gradle build,Gradle 將編譯和測試您的代碼,并創建一個包含您的主要類和資源的 JAR 文件。 Example 7.2\. Building a Java project 執行 gradle build 輸出 ~~~ > gradle build :compileJava :processResources :classes :jar :assemble :compileTestJava :processTestResources :testClasses :test :check :build BUILD SUCCESSFUL Total time: 1 secs ~~~ 其他有用的 task 有: **clean** 刪除 build 目錄,移除所有構建的文件 **assemble** 編譯打包代碼,但不運行單元測試。其他插件帶給這個 task 更多特性,比如如果你使用 War 插件,task 將給 project 構建 WAR 文件 **check** 編譯測試你的代碼。其他插件帶給這個 task 提供更多檢查類型。比如,你使用 checkstyle 插件, 這個 task 建輝在你的代碼中 執行 Checkstyle ### [](https://github.com/waylau/Gradle-2-User-Guide/blob/master/Chapter%2007.%20Java%20Quickstart%20%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B%20Java.md#722-external-dependencies-外部依賴)7.2.2\. External dependencies 外部依賴 Java 項目經常會有一些外部 JAR 的依賴。為了引用這些 JAR 文件,需要在 Gradle 里面配置。在 Gradle,類似與 JAR 文件將會放在 repository 中。一個 repository 可以被依賴的項目獲取到,或者提交項目的拷貝到 repository 中,或者兩者都可。比如,我們使用 Maven repository : Example 7.3\. Adding Maven repository build.gradle ~~~ repositories { mavenCentral() } ~~~ 我們添加一些依賴,聲明了 編譯時 需要的依賴和測試時需要的依賴 Example 7.4\. Adding dependencies build.gradle ~~~ dependencies { compile group: 'commons-collections', name: 'commons-collections', version: '3.2' testCompile group: 'junit', name: 'junit', version: '4.+' } ~~~ 詳見[Chapter 8\. Dependency Management Basics 依賴管理的基礎知識](https://github.com/waylau/Gradle-2-User-Guide/blob/master/Chapter%2008.%20Dependency%20Management%20Basics%20%E4%BE%9D%E8%B5%96%E7%AE%A1%E7%90%86%E7%9A%84%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86.md) ### [](https://github.com/waylau/Gradle-2-User-Guide/blob/master/Chapter%2007.%20Java%20Quickstart%20%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B%20Java.md#723-customizing-the-project-自定義-項目)7.2.3\. Customizing the project 自定義 項目 在 Java 插件添加屬性到您的項目。這些屬性通常足在啟動時使用默認值。如果他們不適合你,你很容易改他們。讓我們看一看我們的示例。在這里,我們將說明我們的 Java 項目的版本號,包括 Java 的版本號。我們也添加一些屬性的 JAR 文件清單。 Example 7.5\. Customization of MANIFEST.MF build.gradle ~~~ sourceCompatibility = 1.5 version = '1.0' jar { manifest { attributes 'Implementation-Title': 'Gradle Quickstart', 'Implementation-Version': version } } ~~~ Java 插件添加的 task 和 平常的 task 完全一樣,在構建文件中聲明。這意味著你可以使用任何在前面的章節中自定義這些 task 的機制。例如,您可以設置 task 的性能,添加行為的一個任務,更改 task 的依賴,或替換完全的 task 。在我們的示例,我們將配置測試 task ,這是類型?[Test](http://www.gradle.org/docs/current/dsl/org.gradle.api.tasks.testing.Test.html)?,增加一個系統屬性,當執行測試時: Example 7.6\. Adding a test system property build.gradle ~~~ test { systemProperties 'property': 'value' } ~~~ *有哪些屬性存在?* *執行 gradle properties 可以列出 project 的屬性,你可以看到 Java 插件添加的屬性和他們的默認值* ### [](https://github.com/waylau/Gradle-2-User-Guide/blob/master/Chapter%2007.%20Java%20Quickstart%20%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B%20Java.md#724-publishing-the-jar-file-發布-jar-文件)7.2.4\. Publishing the JAR file 發布 JAR 文件 需要告訴 Gradle 要發布 JAR 的位置。在 Gradle 中, 產物 比如 JAR 文件等是發布到庫中的。我們的例子中是發布到了本地路徑。你也可以發布到 遠程位置或者多個位置。 Example 7.7\. Publishing the JAR file build.gradle ~~~ uploadArchives { repositories { flatDir { dirs 'repos' } } } ~~~ 執行 gradle uploadArchives 來發布 ### [](https://github.com/waylau/Gradle-2-User-Guide/blob/master/Chapter%2007.%20Java%20Quickstart%20%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B%20Java.md#725-creating-an-eclipse-project-創建一個-eclipse-project)7.2.5\. Creating an Eclipse project 創建一個 Eclipse project 創建 Eclipse 特點的描述文件,比如 .project,需要添加插件 Example 7.8\. Eclipse plugin build.gradle ~~~ apply plugin: 'eclipse' ~~~ 執行 gradle eclipse 來生產 Eclipse project 文件。更多 eclipse task 相關內容詳見?[Chapter 38\. The Eclipse Plugin 關于 Eclipse 插件](https://github.com/waylau/Gradle-2-User-Guide/blob/master/Chapter%2038.%20The%20Eclipse%20Plugin%20%E5%85%B3%E4%BA%8E%20Eclipse%20%E6%8F%92%E4%BB%B6.md) ### [](https://github.com/waylau/Gradle-2-User-Guide/blob/master/Chapter%2007.%20Java%20Quickstart%20%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B%20Java.md#726-summary-總結)7.2.6\. Summary 總結 下面是完整的示例 build 文件 Example 7.9\. Java example - complete build file build.gradle ~~~ apply plugin: 'java' apply plugin: 'eclipse' sourceCompatibility = 1.5 version = '1.0' jar { manifest { attributes 'Implementation-Title': 'Gradle Quickstart', 'Implementation-Version': version } } repositories { mavenCentral() } dependencies { compile group: 'commons-collections', name: 'commons-collections', version: '3.2' testCompile group: 'junit', name: 'junit', version: '4.+' } test { systemProperties 'property': 'value' } uploadArchives { repositories { flatDir { dirs 'repos' } } } ~~~ ## [](https://github.com/waylau/Gradle-2-User-Guide/blob/master/Chapter%2007.%20Java%20Quickstart%20%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B%20Java.md#73-multi-project-java-build-多-project-的-java-構建)7.3\. Multi-project Java build 多 project 的 Java 構建 下面是一個 多 project 構建的 項目結構: Example 7.10\. Multi-project build - hierarchical layout ~~~ multiproject/ api/ services/webservice/ shared/ services/shared/ ~~~ *注意,完整的項目源碼見[https://github.com/waylau/Gradle-2-User-Guide-Demos](https://github.com/waylau/Gradle-2-User-Guide-Demos)?中 java/multiproject* 里面包含 4 個 project。?`api`?是產生出 JAR 文件 給客戶端加載提供給 Java 客戶端需要的 XML webservice。?`webservice`是一個 web 應用返回 XML 。`shared`?包含了?`api`、`webservice`?使用的代碼。項目?`services/shared`?包含了 依賴`shared`?的代碼。 ### [](https://github.com/waylau/Gradle-2-User-Guide/blob/master/Chapter%2007.%20Java%20Quickstart%20%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B%20Java.md#731-defining-a-multi-project-build-定義-build-文件)7.3.1\. Defining a multi-project build 定義 build 文件 配置文件的名字叫 settings.gradle,如下 Example 7.11\. Multi-project build - settings.gradle file settings.gradle ~~~ include "shared", "api", "services:webservice", "services:shared" ~~~ 詳見?[Chapter 57\. Multi-project Builds 多項目構建](https://github.com/waylau/Gradle-2-User-Guide/blob/master/Chapter%2057.%20Multi-project%20Builds%20%E5%A4%9A%E9%A1%B9%E7%9B%AE%E6%9E%84%E5%BB%BA.md) ## [](https://github.com/waylau/Gradle-2-User-Guide/blob/master/Chapter%2007.%20Java%20Quickstart%20%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B%20Java.md#732-common-configuration-常見配置)7.3.2\. Common configuration 常見配置 有很多常見的配置。我們的示例中使用了 configuration injection (配置注入)。在這里,根項目就像一個容器,subprojects 方法遍歷容器中的元素(實例中的 project ),并將指定的配置。這樣我們可以很容易地定義所有檔案的 manifest 的內容,和一些常見的依賴關系: Example 7.12\. Multi-project build - common configuration build.gradle ~~~ subprojects { apply plugin: 'java' apply plugin: 'eclipse-wtp' repositories { mavenCentral() } dependencies { testCompile 'junit:junit:4.11' } version = '1.0' jar { manifest.attributes provider: 'gradle' } } ~~~ 注意,示例中 在 所有 子 project 中應用了 Java 插件。意思是 task 和配置屬性將會出現在雖偶有 子 project 中。所以,你可以 在根 project 目錄中,運行 gradle build 來編譯、測試、將所有 project 打包成 JAR 。 注意,插件只應用在 subprojects 包含的區域,其他根級別的將不適用。 ### [](https://github.com/waylau/Gradle-2-User-Guide/blob/master/Chapter%2007.%20Java%20Quickstart%20%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B%20Java.md#733-dependencies-between-projects-項目間的依賴)7.3.3\. Dependencies between projects 項目間的依賴 在相同的構建里,您可以添加項目之間的依存關系,這樣,例如,一個項目的 JAR 文件可以用來編譯另外一個項目。在`api`?構建文件中我們將添加對`shared`項目的依賴。由于這種依賴,Gradle 將確保?`shared`在`api`?之前獲得構建。 Example 7.13\. Multi-project build - dependencies between projects api/build.gradle ~~~ dependencies { compile project(':shared') } ~~~ 詳見?[Chapter 57\. Multi-project Builds 多項目構建](https://github.com/waylau/Gradle-2-User-Guide/blob/master/Chapter%2057.%20Multi-project%20Builds%20%E5%A4%9A%E9%A1%B9%E7%9B%AE%E6%9E%84%E5%BB%BA.md)?中 Section 57.7.1, “Disabling the build of dependency projects” 如何禁用這個功能 ### [](https://github.com/waylau/Gradle-2-User-Guide/blob/master/Chapter%2007.%20Java%20Quickstart%20%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B%20Java.md#734-creating-a-distribution-創建發布包)7.3.4\. Creating a distribution 創建發布包 添加發布包,提供給客戶端裝載 Example 7.14\. Multi-project build - distribution file api/build.gradle ~~~ task dist(type: Zip) { dependsOn spiJar from 'src/dist' into('libs') { from spiJar.archivePath from configurations.runtime } } artifacts { archives dist } ~~~ ## [](https://github.com/waylau/Gradle-2-User-Guide/blob/master/Chapter%2007.%20Java%20Quickstart%20%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B%20Java.md#74-where-to-next-下步工作)7.4\. Where to next? 下步工作 你可以查看更多關于 Java 插件 ,見[Chapter 23\. The Java Plugin 關于 Java 插件](https://github.com/waylau/Gradle-2-User-Guide/blob/master/Chapter%2023.%20The%20Java%20Plugin%20%E5%85%B3%E4%BA%8E%20Java%20%E6%8F%92%E4%BB%B6.md)。也可以在[https://github.com/waylau/Gradle-2-User-Guide-Demos](https://github.com/waylau/Gradle-2-User-Guide-Demos)?中 java 目錄下,看到更多 Java 的示例 繼續?[Chapter 8\. Dependency Management Basics 依賴管理的基礎知識](https://github.com/waylau/Gradle-2-User-Guide/blob/master/Chapter%2008.%20Dependency%20Management%20Basics%20%E4%BE%9D%E8%B5%96%E7%AE%A1%E7%90%86%E7%9A%84%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86.md)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看