2010-11-11 36 views
0

我有一个项目需要发布源代码。我遇到的问题是我需要为我们开发的所有代码创建一个源代码版本。代码跨多个项目,但我想利用maven,以便只发布我们实际使用的jar包的源代码。如何使用Maven创建交叉项目源版本

例如:

  • 核心代码项目(多模块行家项目)
  • web应用程序的项目(多模块行家项目)。包含我们的应用程序模块和一些支持的jar模块。取决于核心代码项目中的一些jar。

现在我想发布所有的web应用程序项目的源代码,但只有web应用程序使用的核心代码项目的源代码。

我可以用maven吗?

我有一种感觉,它可能与程序集插件和源插件,但我不清楚如何把它放在一起。

回答

3

首先你的问题有点不清楚。让我假设某些事情并继续。 我相信以下是你的文件夹结构。

  • Web应用程序项目
    • 一些源代码文件夹
    • 的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应用程序相关的代码。 目前我们正在使用这种方法。希望能帮助到你。让我知道你是否想要别的东西。

0

我不确定你为什么要这样做,你的web应用程序项目中的pom将明确列出你使用的代码依赖项的版本,所以你可以很容易地找到源代码。这听起来像你想存储两次相同的神器。因此,如果您的网络应用程序使用core-x-1.2.3.jarcore-y-4.5.6.jar,那么除了实际的Web应用程序源外,您还应该生成一个包含来自这两个核心罐的源的Web应用程序源工件?

您可以使用maven versions plugin来更新您的网络应用程序pom以使用最新版本的核心依赖项,我已经通过在CI服务器中运行一个shell脚本来自动执行该操作。这意味着无论何时您发布新版本的Web应用程序,您都将使用最新版本的核心代码,并且您只需从版本控制中更新您的Web应用程序。

1

我有一种感觉,它可能与程序集插件和源插件,但我不清楚如何把它放在一起。

如果我理解正确的问题,一个解决办法是建立一个“聚合”项目列出了所有想要的模块(从Web应用程序相关的模块,并从核心相关模块),并从使用source:aggregate目标Maven Source Plugin

+0

这与我想要的非常接近,但我今天实际上发现我需要包含pom文件并以可以使用maven构建的表单分发。我提出的解决方案是在Web应用程序项目上使用apache source-release程序集。这很好,因为我需要所有这些来源。 对于核心项目,我创建了一个定制版本的源代码发布程序集,它明确选择了我需要的模块。不大好。但最终我有两个zip文件,其源代码是构建我们可以提供给其他人的项目的关键。 – zorro2b 2010-11-11 23:06:23

+0

@ zorro2b:未来的需求很难预料:) – 2010-11-12 08:49:41

相关问题