Maven可以帮助修改依赖关系,更改它们并将它们打包回来吗?

时间:2013-12-09 17:38:19

标签: maven pom.xml

我的任务是:

  • 采取依赖,这是一个zip
  • 解压缩依赖
  • 运行一些Java代码,添加一些新文件
  • 重新组合依赖项,包括新文件
  • 组装后,将其构建为另一个工件。

我的疑问:

  1. 需要在构建期间动态提供依赖关系坐标。我正在寻找像SystemProperty这样的东西,但不知道如何通过我的pom。
  2. 拆包很简单。 unpack-dependencies就是我所需要的。
  3. 运行Java代码 - 这又是一次打嗝。这个项目不会产生罐子或战争,它必须是一个pom包装。所以我无法在项目中编译代码。我可以使用编译器插件和Java执行。不确定这是一个好习惯。
  4. 组装不成问题,如果我能在这里停止工作。
  5. 对第1点和第3点的任何建议?

    感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

Maven的问题很多都来自于决定哪些构建"任务"转换为离散的Maven构建。一般的想法是每个罐子,拉链或任何你的建筑应该得到它自己的mave build(aka pom,aka module)。看着你的子弹,我相信你有三个maven构建,即三个poms。

1)第一个pom将构建你的Java实用程序,即jar。然后,这个jar将成为您的其他构建的依赖项,需要在zip程序集过程中执行它。

2)第二个pom将构建拉链。 (我猜你实际上会构建几个不同的;很可能这些是单独的poms - 虽然你可以有一个构建产生多个工件,利用附加工件和分类器的概念,它是一个不必要的复杂功能应该避免这种情况,除非你知道你需要它。)这些拉链组件poms解压缩主zip,通过java util按摩内容(通过maven-exec插件运行jar),并重新组装zip

3)如果你需要在生产另一个工件(你的框架)时消耗一个工件(你的zip)的名字,那么你可以使用依赖插件'复制目标。它允许你为你正在构建的依赖项指定新名称 - 但请注意,你实际上并没有改变maven coords,我相信这是像瘟疫一样可以避免的。 :)