Maven插件和资源替代

Maven插件和资源替代,maven,plugins,lifecycle,Maven,Plugins,Lifecycle,我经常需要在Maven中执行几个目标,所以我决定为它编写一个插件。为此定义一个新的生命周期似乎最容易,每个阶段都执行相关的插件目标。我需要将配置传递给插件,特别是一个目录和版本号 我发现,如果在lifecycle.xml中使用变量,例如${projname.directory},则该变量似乎不是在插件编译时解析的,而是在项目编译时解析的。我猜lifecycle.xml是在项目中使用的,插件没有涉及到它。有没有任何参考资料可以帮助我们准确地理解这是如何工作的 此外,如果未设置projname.di

我经常需要在Maven中执行几个目标,所以我决定为它编写一个插件。为此定义一个新的生命周期似乎最容易,每个阶段都执行相关的插件目标。我需要将配置传递给插件,特别是一个目录和版本号

我发现,如果在lifecycle.xml中使用变量,例如${projname.directory},则该变量似乎不是在插件编译时解析的,而是在项目编译时解析的。我猜lifecycle.xml是在项目中使用的,插件没有涉及到它。有没有任何参考资料可以帮助我们准确地理解这是如何工作的

此外,如果未设置projname.directory属性,我希望能够使用默认目录名—将其存储在插件源中的某个位置。我不知道该怎么做——有没有简单的方法

谢谢,
-戴夫

你能不能再详细一点,因为听起来你走错了方向。为什么需要一个插件来执行几个目标?执行死刑不合适?也许我没有采取正确的方法。我有几个项目(可能会增长),每个项目都希望在特定时间做相同的事情(在通常的构建周期之外)。我认为最好的封装方法是定义一个包含公共逻辑的插件,并简单地将插件包含在每个项目的POM中。那不是一件好事吗?你想做什么?在构建生命周期之外,它意味着什么?我们有一个大型的C++ DLL库,我们使用java绑定来运行函数。这些需要与Java一起安装,但它们太大,无法在每个项目的jar中分发。我目前的解决方案是将它们压缩,然后在目标机器上从Nexus获取压缩文件,并将其解压缩到一个适当的(已知的)目录中,以便在Java中使用。这个任务只需要发生在新机器或新版本的C++中,因此在通常的java构建周期之外。