簡體   English   中英

如何使用Maven創建跨項目源版本

[英]How to create a cross project source release with Maven

我有一個項目需要發布源代碼。 我的問題是我需要為我們開發的所有代碼創建一個源發行版。 該代碼涉及多個項目,但是我想利用Maven,以便僅釋放我們實際使用的jar的源。

例如:

  • 核心代碼項目(多模塊Maven項目)
  • Web應用程序項目(多模塊Maven項目)。 包含我們的應用程序模塊以及一些支持的jar模塊。 取決於核心代碼項目中的一些jar。

現在,我想發布該Web應用程序項目的所有源代碼,但僅發布該Web應用程序使用的核心代碼項目的源代碼。

我可以用Maven做到這一點嗎?

我感覺有可能使用程序集插件和源代碼插件,但是我不清楚如何將它們組合在一起。

首先,您的問題還不清楚。 讓我假設某些事情然后繼續。 我相信以下是您的文件夾結構。

  • 網絡應用項目
    • 一些源代碼文件夾
    • 的pom.xml
  • 核心代碼項目
    • 一些源代碼文件夾
    • 的pom.xml

進行核心代碼項目,並從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.jarcore-y-4.5.6.jar那么您將生成一個Web應用程序源工件,其中包含來自這兩個核心jar的源代碼以及實際的Web應用程序源代碼?

您可以使用maven版本插件來更新您的Web應用程序pom,以使用最新版本的核心依賴項。過去,我通過在CI服務器中運行Shell腳本來實現自動化。 這意味着,無論何時發布新版本的Web應用程序,您都將使用最新版本的核心代碼,而您所需要做的就是從版本控制中更新Web應用程序pom。

暫無
暫無

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

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