簡體   English   中英

如何使用 JavaExec 任務將 Java 代碼嵌入到 Gradle 構建中

[英]How to embed Java code into Gradle build using JavaExec task

我有一個 Gradle 驅動的項目,我想向其中添加一個簡單的 Java 任務。 此任務非常特定於項目,如果可以提供幫助,我不想將其開發為單獨的插件。 所以問題是我可以在我用於我的項目的同一個 build.gradle 中定義這樣的自定義任務嗎? 還是不可避免地需要將其打包為單獨的項目(插件)並安裝到本地存儲庫?

另外需要注意的是,原始項目與 Java 無關(不需要構建其他 Java 代碼)

PS 基於以下評論:

我想將src/main/java/SomeUsefulStuff.java到現有項目中,並將該文件編譯並用作自定義任務。 我明白每次運行構建時都需要編譯它,但同樣 - 代碼會很小。 但是它將有一些外部依賴項,例如 Commons IO

由於憤怒誰指着JavaExec這竟然是非常簡單的。 這是你要做的:

  1. 將您的 Java 代碼放在 /src/main/java 中,就像在常規 Gradle 驅動的 Java 項目中一樣。 確保它在您要調用的文件中有main方法
  2. apply plugin: 'java'添加到build.gradle
  3. 如果您的 Java 代碼對 3rd 方庫有任何依賴,請將這些添加到依賴項部分
  4. 像這樣向build.gradle添加新的任務部分:
 task usefulStuff(type: JavaExec) { classpath = sourceSets.main.runtimeClasspath main = 'com.me.gradle.UsefulStuff' // arguments to pass to the application args 'OhmyGod!' }
  1. 現在,您可以將該任務稱為構建中的任何任務。 例如imporantTask.dependsOn usefulStuff

暫無
暫無

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

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