【问题标题】:How to make maven use separate target folders for every version of program?如何让 Maven 为每个版本的程序使用单独的目标文件夹?
【发布时间】:2018-10-12 20:36:48
【问题描述】:

例如,我有版本为 0.0.1 的程序。 Maven 必须为其创建单独的文件夹 - “target/0.0.1/”而不是“target/”。必须对版本“0.0.2”、“0.0.3”等进行。

我使用 Eclipse,它是 Maven: 版本:Oxygen.3a 版本 (4.7.3a) 内部版本号:20180405-1200

JDK 1.8.0_172

【问题讨论】:

  • 您是如何将程序的多个版本组合到一个项目中的?
  • 你为什么需要这样的东西?
  • 这不是 maven 的预期用途。请添加您尝试解决的问题的完整描述。

标签: java eclipse maven build


【解决方案1】:

Maven 不是这样工作的,尝试做这样的事情会导致一条痛苦的道路。我看到的选项包括

  • 为每个版本创建单独的程序集(和输出 Jar)(请参阅 Maven Assembly Plugin
  • Create a multi-project reactor 每个项目都有单独的输出配置。将公共代码保留在一个项目中,作为其他项目的依赖项链接。可能使用maven-shade-plugin 将公共项目中的包重新链接到单独的输出项目中

如您所见,这两种方法都非常老套,需要高级 Maven 技能。在传递输出版本的地方进行参数化构建会容易得多。但这在像 Jenkins 这样的 CI 服务器上是有意义的。

【讨论】:

  • 对“苦难之路”投了赞成票。我的经验法则是,如果 Maven 默认没有以某种方式做某事,不要费心去鼓励它改变。我重视我的理智。
  • 是否存在任何可以创建单独目标文件夹的 Maven 类似物?
  • 您可能需要一些更重要的构建工具。可能是 gradle,或者(颤抖)蚂蚁
猜你喜欢
  • 2018-06-07
  • 2016-06-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多