Tho*_*mas 58 components maven-2 mojo plexus maven
我创建了一个Plexus组件来容纳我想要创建的几个Mojos的通用逻辑.我已经能够localRepository
从Mojo(和测试用例)传递信息和项目.
我想知道是否有办法从组件中获取MavenSession
或MavenExecutionRequest
从组件中传递它们作为Mojo的参数.我知道我的组件将从Maven Mojo运行.
我在这个例子中使用Maven 2.
我不相信存在,也不认为这是一个好主意。
根据我的理解,您的目标是拥有一个类似公共的组件,该组件将用于多个 mojo。这需要传入当前的 Maven 会话并用于随后传回一个值。
然而,Maven 的工作方式是,它在几乎类似容器的环境中运行来自插件的目标。每个插件都可以在特定的Maven Phase内运行,如<executions />
. 这允许 Maven 分离构建、测试、检查、部署等的复杂性。调用mvn clean install
,除非我错了,是两个单独的执行,一个运行clean
构建生命周期,然后运行install
.
因此,假设MavenSession
和后续MavenExecutionRequest
代表先前调用中使用的相同实例是不安全的。 clean
是一个单独的调用,其逻辑不应在新会话中维护。
所以,我本质上想说的是,虽然拥有一个共同的丛组件是一个很好的实践,特别是为了保持你的魔力的一致性,但每次提供适当的会话是正确的实践(几乎是ioc )。
我希望这就是您正在寻找的答案。相当长,但要理解为什么需要提供会话,请思考Maven
。
归档时间: |
|
查看次数: |
2057 次 |
最近记录: |