2015-02-24 172 views
1

我有以下項目結構:搖籃多項目建設

my-project 
+my-project-data 
+my-project-service 
+my-project-example 

如果這些我的項目數據,我的項目服務的,我的項目,例子被定義爲子項目我 - settings.gradle文件中的項目。當然,我的項目服務依賴於我的項目數據。而我的項目示例對my-project-data和my-project服務有依賴關係。

在項目my-project-examples中,我想用main方法創建一些類,並對DB進行一些查詢(假設主類位於com.project.main包中)。而且我想在命令行中執行此:

java -jar my-project.jar 

但要做到這一點,我必須設置Main-Class屬性。我在哪裏必須在根項目build.gradle或其他地方做什麼,以及什麼必須是屬性的值?

+2

http://gradle.org/docs/current/userguide/userguide_single.html#application_plugin – 2015-02-24 14:47:17

+0

我需要從這裏得到什麼? – user2983494 2015-02-24 14:54:22

+1

他說應用程序插件用於定義從Gradle運行的類。您可能會在「示例」子項目中使用該插件。 – 2015-02-24 16:37:51

回答

0

您可以使用應用程序插件,它提供了您所需要的。

以下內容添加到您的示例中的項目的build.gradle:

apply plugin: 'application' 
mainClassName = "com.company.package.YourClassWithMain" 

然後,只需通過示例項目目錄下執行「gradle這個運行」(或使用gradle這個包裝器)運行樣本。

+0

非常感謝。我也發現了這一點。現在,如果我在根項目文件夾中,並執行gradle build命令,它不打包jar。在執行gradle build命令的非多項目構建的情況下,gradle會創建文件夾構建,並且在哪個文件夾中有子文件夾庫,這裏是jar。但現在我沒有這樣的一個。 任何想法? – user2983494 2015-02-25 06:45:44

+0

我會給你更詳細的介紹。我想在命令行中寫下如下代碼: java -jar my-project.jar db.username = my_username db.password = my_pass – user2983494 2015-02-25 07:11:31

+0

關於你的第一條評論,這很奇怪,因爲它不應該影響jar的創建。你能分享一些代碼嗎? 關於你的第二個評論:這是純java,與Gradle無關。只要確保您的主要方法簽名接收參數(public static void main(String [] args)) – yonisha 2015-02-25 20:24:52