我的问题是,我写了一个maven插件将工件部署到用户指定的位置。我现在正在尝试编写另一个Maven插件来使用此已部署的工件,更改一些内容并再次压缩它。 我想编写第二个插件,这样我可以使用第一个插件来获取它的部署位置信息。 我不知道如何从第一个插件访问这些信息。Maven插件;使用一个输出作为另一个输入
2
A
回答
0
我同意@Barend,如果你有能力在部署之前做出改变,那可能是最好的策略。
如果你不能这样做,你可以按照像Maven Release插件这样的插件策略。 Maven发布插件分两个阶段运行,第二个运行需要输出第一个运行。他们通过保持临时性质携带像标签名称的信息项目目录中的文件进行管理,快照版本命名等
你可以使用与插件相同的方法。只要记住,你的插件将是一种事务性的,它希望在其能够完成它的工作之前运行其他目标。
0
在我看来,最简单的解决方法是颠倒插件运行的顺序。
让插件B先运行,使用target/
下的已知位置修改工件,然后运行插件A,将修改的工件部署到配置的位置。
如果这没有选择,我建议你只需复制配置值(以便两个插件被告知有关<configuration>
元素中的新位置)。这使得两个插件都是独立的,Maven认为它们是独立的。
最后一个选项是让插件B解析整个POM并从插件A的<configuration>
元素中提取信息,但我真的不能推荐这个。如果你这样做,这两个插件是如此紧密地交织在一起,以至于它们只是一个插件。这是糟糕的设计,违反了最小惊喜的原则,并可能导致恶劣的配置问题。
相关问题
- 1. Cassandra:使用一个查询的输出作为另一个查询的输入
- 2. 使用一个功能的输出作为另一个功能的输入
- 3. 插入文件从另一个输入输入
- 4. sqlite3的获得从一个表输出作为输入提供给另一个
- 5. 使用最后的sapply输出作为下一个输入
- 6. 如何使一个子进程使用另一个终端输入和输出?
- 7. 将一个函数的输出用作另一个函数的输入
- 8. 使用线程进行其中一个输入和显示另一个输出
- 9. 将一个场景的输出作为输入输入到另一个黄瓜场景中
- 10. 不知道如何输入一个函数的输出作为另一个函数的输入
- 11. 查询输出,是另一个查询的输入 - 不工作
- 12. Oracle SELECT - 另一列的别名作为另一个输入的
- 13. 如何将一个脚本的输出文件作为另一个脚本的输入文件?
- 14. 错误在使用一个的MapReduce的输出作为另一个的MapReduce的输入
- 15. 如何使用Tensorflow r-1.0将一个模型的输出作为另一个模型的输入?
- 16. BIRT可以使用一个查询的输出作为另一个查询的输入
- 17. Maven插件执行另一个插件
- 18. 如何将Maven工件用作另一个工件(或模块)的输入?
- 19. 使用...函数参数作为另一个函数的输入
- 20. 使用函数作为另一个函数的输入
- 21. 如何从另一个c文件输入输出?
- 22. MySQL输出一个低于另一个
- 23. 插入输出到一个临时表
- 24. 输出是另一个
- 25. 使用另一个表的行作为输入创建一个表
- 26. 从另一个输入
- 27. 从一个输入动态生成值到另一个输入
- 28. 传入一个对象作为一个输出参数
- 29. 使用管道将文件输入输出到另一个进程
- 30. 你可以做一个maven插件拉到另一个插件?
在哪种类型的插件是特别与maven-deploy-plugin等比较的。那么为此编写一个maven-plugin的原因是什么?为什么你重新发明轮子,导致像maven-assembly-plugin这样的插件已经存在?.. – khmarbaise 2012-04-22 11:52:09