我的问题是我编写了一个maven插件来将工件部署到用户指定的位置。我现在正在尝试编写另一个maven插件来使用这个已部署的工件,更改一些东西并再次压缩它。 我想编写第二个插件,以便我使用第一个插件获取部署位置的信息。 我不知道如何从第一个插件中访问此信息。
答案 0 :(得分:1)
我同意@Barend的意见,如果您能够在部署之前进行更改,那么这可能是最好的策略。
如果你不能这样做,你可以遵循像Maven Release插件这样的插件的策略。 Maven发布插件分两个阶段运行,第二次运行需要输出第一次运行。他们通过在项目目录中保存临时属性文件来管理它,该文件目录中包含标签名称,SNAPSHOT版本名称等信息。
您可以使用与插件相同的方法。请记住,您的插件将是一种事务性的,它希望其他目标在它可以完成工作之前运行。
答案 1 :(得分:0)
在我看来,最简单的解决方法是颠倒插件的运行顺序。
首先运行插件B,使用target/
下的已知位置修改工件,然后运行插件A,将修改后的工件部署到配置的位置。
如果没有选择,我建议您只复制配置值(以便两个插件都被告知其<configuration>
元素中的新位置)。这使得两个插件保持独立,这就是Maven所认为的那样。
最后一个选项是make make Plugin B解析整个POM并从插件A的<configuration>
元素中提取信息,但我真的不推荐这个。如果你这样走,这两个插件是如此紧密地交织在一起,它们只是一个插件。这是一个糟糕的设计,违反了最不惊讶的原则,并可能导致令人讨厌的配置问题。