這裏新來的maven來自螞蟻世界構建maven項目以創建客戶端jar的最佳方式是什麼?
我需要創建一個客戶端jar包含幾個文件,這將使我的客戶端能夠寫入我的db並對我的服務進行其他調用。 這些主要是包裝Rest連接和db客戶端的類。
是否有可能產生這個神器作爲我的主Maven項目的副作用? 例如:當我運行mvn包時,主項目會生成一個包,但是我想通過提供一些其他參數生成客戶端jar。
這裏新來的maven來自螞蟻世界構建maven項目以創建客戶端jar的最佳方式是什麼?
我需要創建一個客戶端jar包含幾個文件,這將使我的客戶端能夠寫入我的db並對我的服務進行其他調用。 這些主要是包裝Rest連接和db客戶端的類。
是否有可能產生這個神器作爲我的主Maven項目的副作用? 例如:當我運行mvn包時,主項目會生成一個包,但是我想通過提供一些其他參數生成客戶端jar。
標準的Maven方式是「一個項目,一個jar」。這意味着實現您的目標的最簡潔的方法是設置一個多模塊項目,您的「普通」罐子和「客戶」罐子都有一個模塊。但也有其他可能性:
如果你是在談論一個EJB,你可以使用maven-EJB-插件,並創建一個客戶端神器。不幸的是,這兩個工件然後共享相同的pom(並因此具有相同的依賴關係)。
您可以使用maven-assembly-plugin來組裝一組文件,並將它們部署爲副工件(與(1)中的問題相同)。
您可以使用maven-install-plugin和maven-deploy-plugin來安裝/部署完全不同的工件以及主工件。這些工件需要在創建之前,例如由一個自定義的Maven插件。
這3個都不會創建可運行的jar。 –
OP在哪裏說罐子應該可以運行? –
你說得對,我的腦子裏裝滿了罐子。垃圾回答。 –
這裏你需要的是一個多模塊的maven項目。
的結構是這樣的:
-- Parent Module
----- Child 1 Module
----- Child 2 module
在這裏,你可以有你的主應用程序的所有代碼/文件child 1
模塊,並把所有的代碼/文件,客戶端的child 2
模塊中。
父模塊只是一個聚合器,它會產生pom
類型的工件。而你的每個孩子模塊都會生產個人jars
。 然後,你可以在你的客戶端的第二個罐子。
要詳細瞭解多模塊項目的工作原理,請檢查link。
Maven具有標準結構。你必須遵守這一點。標準的Maven生命週期包括包;這就是您可以選擇如何打包應用程序的地方。 – duffymo