我有一个项目,我需要发布源代码。我遇到的问题是我需要为我们开发的所有代码创建一个源代码版本。代码跨越多个项目,但我想利用maven,以便只发布我们实际使用的jar的源代码。
例如:
现在我想发布Web应用程序项目的所有源代码,但只发布Web应用程序使用的核心代码项目的源代码。
我可以和maven一起做吗?
我觉得有可能使用程序集插件和源代码插件,但我不清楚如何将它们组合在一起。
答案 0 :(得分:3)
首先你的问题有点不清楚。让我假设某些事情并继续。 我相信以下是您的文件夹结构。
获取核心代码项目并在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 app相关的代码。 目前我们正在使用这种方法。希望能帮助到你。如果你想要别的东西,请告诉我。
答案 1 :(得分:1)
我觉得有可能使用程序集插件和源代码插件,但我不清楚如何将它们组合在一起。
如果我正确理解了这个问题,一个解决方案就是创建一个“聚合器”项目,列出所有需要的模块(来自webapp的相关模块和来自核心的相关模块)并使用source:aggregate
目标来自Maven Source Plugin。
答案 2 :(得分:0)
我不确定您为什么要这样做,您的网络应用程序项目中的pom将明确列出您使用的代码依赖项的版本,以便您可以轻松找到源代码。听起来你想要存储两次相同的工件。因此,如果您的网络应用使用core-x-1.2.3.jar
和core-y-4.5.6.jar
,您会生成一个网络应用来源工件,其中包含来自这些核心广告文具中的来源以及实际的网络应用来源?
您可以使用maven versions plugin更新您的网络应用程序pom以使用最新版本的核心依赖项,我通过在过去的CI服务器中运行shell脚本实现了自动化。这意味着无论何时发布新版本的Web应用程序,您都将使用最新版本的核心代码,而您只需从版本控制中更新您的Web应用程序。