java gradle入门_Gradle入门:我们的第一个Java项目
java gradle入門
這篇博客文章描述了如何使用Gradle編譯和打包一個簡單的Java項目。
我們的Java項目只有一個要求:
我們的構建腳本必須創建一個可執行的jar文件。 換句話說,我們必須能夠使用以下命令運行程序:
讓我們找出如何滿足這一要求。
創建一個Java項目
我們可以通過應用Java插件來創建Java項目。 我們可以通過在build.gradle文件中添加以下行來實現 :
apply plugin: 'java'這就對了。 現在,我們已經創建了一個Java項目。
Java插件向我們的構建添加了新的約定(例如,默認的項目布局), 新的任務和新的屬性 。
讓我們繼續前進,快速瀏覽一下默認的項目布局。
Java項目的項目布局
Java項目的默認項目布局如下:
- src / main / java目錄包含我們項目的源代碼。
- src / main / resources目錄包含我們項目的資源(例如屬性文件)。
- src / test / java目錄包含測試類。
- src / test / resources目錄包含測試資源。
我們構建的所有輸出文件都在構建目錄下創建 。 該目錄包含與該博客文章相關的以下子目錄(也有其他子目錄,但以后我們將討論它們):
- classes目錄包含已編譯的.class文件。
- libs目錄包含由構建創建的jar或war文件。
讓我們繼續并將簡單的主類添加到我們的項目中。
在我們的版本中添加主類
讓我們創建一個簡單的主類,該主類將單詞:“ Hello World”打印到System.out 。 HelloWorld類的源代碼如下所示:
package net.petrikainulainen.gradle;public class HelloWorld {public static void main(String[] args) {System.out.println("Hello World!");} }HelloWorld類已添加到src / main / java / net / petrikainulainen / gradle目錄。
那很好。 但是,我們仍然必須編譯和打包我們的項目。 讓我們繼續看一下Java項目的任務。
Java項目的任務
Java插件向我們的構建中添加了許多任務,但是與此博客文章相關的任務是:
- 組裝任務將編譯應用程序的源代碼并將其打包到jar文件中。 此任務不會運行單元測試。
- 構建任務執行項目的完整構建。
- clean任務刪除構建目錄。
- compileJava任務編譯我們應用程序的源代碼。
我們還可以通過在命令提示符處運行以下命令來獲取可運行任務及其描述的完整列表:
gradle tasks這是在不閱讀構建腳本的情況下獲得項目概述的好方法。 如果在示例項目的根目錄中運行此命令,則會看到以下輸出:
> gradle tasks :tasks------------------------------------------------------------ All tasks runnable from root project ------------------------------------------------------------Build tasks ----------- assemble - Assembles the outputs of this project. build - Assembles and tests this project. buildDependents - Assembles and tests this project and all projects that depend on it. buildNeeded - Assembles and tests this project and all projects it depends on. classes - Assembles classes 'main'. clean - Deletes the build directory. jar - Assembles a jar archive containing the main classes. testClasses - Assembles classes 'test'.Build Setup tasks ----------------- init - Initializes a new Gradle build. [incubating] wrapper - Generates Gradle wrapper files. [incubating]Documentation tasks ------------------- javadoc - Generates Javadoc API documentation for the main source code.Help tasks ---------- dependencies - Displays all dependencies declared in root project 'first-java-project'. dependencyInsight - Displays the insight into a specific dependency in root project 'first-java-project'. help - Displays a help message projects - Displays the sub-projects of root project 'first-java-project'. properties - Displays the properties of root project 'first-java-project'. tasks - Displays the tasks runnable from root project 'first-java-project'.Verification tasks ------------------ check - Runs all checks. test - Runs the unit tests.Rules ----- Pattern: build<ConfigurationName>: Assembles the artifacts of a configuration. Pattern: upload<ConfigurationName>: Assembles and uploads the artifacts belonging to a configuration. Pattern: clean<TaskName>: Cleans the output files of a task.To see all tasks and more detail, run with --all.BUILD SUCCESSFULTotal time: 2.792 secs讓我們繼續前進,了解如何打包Java項目。
打包我們的Java項目
我們可以使用兩個不同的任務來打包應用程序:
如果在命令提示符處運行命令gradle組裝 ,我們將看到以下輸出:
> gradle assemble :compileJava :processResources :classes :jar :assembleBUILD SUCCESSFULTotal time: 3.163 secs如果我們在命令提示符下運行命令gradle build ,我們將看到以下輸出:
> gradle build :compileJava :processResources :classes :jar :assemble :compileTestJava :processTestResources :testClasses :test :check :buildBUILD SUCCESSFULTotal time: 3.01 secs這些命令的輸出表明,這些任務的不同之處在于:
- 組裝任務僅運行打包我們的應用程序所需的任務。
- 構建任務運行打包我們的應用程序所需的任務,并運行自動化測試。
這兩個命令都將first-java-project.jar文件創建到build / libs目錄。
通過使用以下模板創建創建的jar文件的默認名稱: [項目名稱] .jar ,并且該項目的默認名稱與創建它的目錄的名稱相同。 因為我們的項目目錄的名稱是first-java-project ,所以創建的jar的名稱是first-java-project.jar 。
現在,我們可以嘗試使用以下命令來運行我們的應用程序:
java -jar first-java-project.jar執行此操作時,將看到以下輸出:
> java -jar first-java.project.jar No main manifest attribute, in first-java-project.jar問題是我們尚未在清單文件中配置jar文件的主類。 讓我們找出如何解決這個問題。
配置jar文件的主類
Java插件向我們的項目添加了一個jar任務 ,每個jar對象都有一個manifest屬性,該屬性是Manifest的一個實例。
我們可以使用Manifest接口的attribute()方法配置創建的jar文件的主類。 換句話說,我們可以使用包含鍵值對的映射來指定添加到清單文件的屬性。
我們可以通過設置Main-Class屬性的值來設置應用程序的入口點。 在對build.gradle文件進行了必要的更改之后,其源代碼如下所示(相關部分已突出顯示):
apply plugin: 'java'jar {manifest {attributes 'Main-Class': 'net.petrikainulainen.gradle.HelloWorld'} }Java SE教程提供了有關清單文件的更多信息 。
通過運行gradle assemble或gradle build命令創建了一個新的jar文件之后,可以使用以下命令運行jar文件:
java -jar first-java-project.jar當我們運行應用程序時,以下文本將打印到System.out :
> java -jar first-java-project.jar Hello World!今天就這些。 讓我們找出從這篇博客文章中學到的知識。
摘要
現在,我們使用Gradle創建了一個簡單的Java項目。 這篇博客文章教會了我們四件事:
- 我們知道可以通過應用Gradle Java插件來創建Java項目。
- 我們了解到Java項目的默認目錄布局與Maven項目的默認目錄布局相同。
- 我們了解到,可以從構建目錄中找到由構建生成的所有輸出文件。
- 我們了解了如何自定義添加到清單文件的屬性。
PS此博客文章的示例項目可在Github上獲得 。
翻譯自: https://www.javacodegeeks.com/2014/06/getting-started-with-gradle-our-first-java-project.html
java gradle入門
總結
以上是生活随笔為你收集整理的java gradle入门_Gradle入门:我们的第一个Java项目的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java 11新字符串方法的基准
- 下一篇: 000开头的是什么股票 000开头的是哪