[英]How to create a cross project source release with Maven
我有一個項目需要發布源代碼。 我的問題是我需要為我們開發的所有代碼創建一個源發行版。 該代碼涉及多個項目,但是我想利用Maven,以便僅釋放我們實際使用的jar的源。
例如:
現在,我想發布該Web應用程序項目的所有源代碼,但僅發布該Web應用程序使用的核心代碼項目的源代碼。
我可以用Maven做到這一點嗎?
我感覺有可能使用程序集插件和源代碼插件,但是我不清楚如何將它們組合在一起。
首先,您的問題還不清楚。 讓我假設某些事情然后繼續。 我相信以下是您的文件夾結構。
進行核心代碼項目,並從pom.xml中的先前版本更改版本。 假設它是1.0,將其更改為1.1
<groupId>core code project related</groupId> <artifactId>core code project</artifactId> <name>core code</name> <version>1.1</version>
進行更改以適應核心代碼項目中的Web應用程序項目。
稍后,在Web應用程序項目中,為pom.xml中的核心代碼項目添加依賴項
<dependency> <groupId>core code project related</groupId> <artifactId>core code project</artifactId> <name>core code</name> <version>1.1</version> </dependency>
這樣,核心項目的1.1版本將僅具有與Web應用程序相關的代碼。 當前,我們正在使用此方法。 希望能幫助到你。 讓我知道您是否還想要其他東西。
我感覺有可能使用程序集插件和源代碼插件,但是我不清楚如何將它們組合在一起。
如果我正確理解了這個問題,一種解決方案是創建一個“聚合器”項目,列出所有需要的模塊(Webapp中的相關模塊和核心中的相關模塊),並使用Maven源插件中的source:aggregate
目標。
我不確定為什么要這樣做,Web應用程序項目中的pom將顯式列出所使用的代碼依賴項的版本,因此您可以輕松地找到源。 聽起來您想兩次存儲相同的工件。 因此,如果您的Web應用程序使用core-x-1.2.3.jar
和core-y-4.5.6.jar
那么您將生成一個Web應用程序源工件,其中包含來自這兩個核心jar的源代碼以及實際的Web應用程序源代碼?
您可以使用maven版本插件來更新您的Web應用程序pom,以使用最新版本的核心依賴項。過去,我通過在CI服務器中運行Shell腳本來實現自動化。 這意味着,無論何時發布新版本的Web應用程序,您都將使用最新版本的核心代碼,而您所需要做的就是從版本控制中更新Web應用程序pom。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.