我发现了this example关于如何将Maven side artifact附加到Groovy scriptlet。我已经看到MavenSession.lookup已被弃用,我应该使用依赖注入。让我们假设有以下POM.xml部分:在没有session.lookup的情况下获取GMaven脚本中的MavenProjectHelper
<plugin>
<groupId>org.codehaus.gmaven</groupId>
<artifactId>gmaven-plugin</artifactId>
<version>1.5</version>
<executions>
<execution>
<id>attach-config-artifacts</id>
<phase>package</phase>
<goals><goal>execute</goal></goals>
<configuration>
<source>
def helper = session.lookup("org.apache.maven.project.MavenProjectHelper")
new File('${basedir}').eachFileMatch(~/.[^\.]*.cfg$/) { configFile ->
println configFile + " attached as artifact."
helper.attachArtifact(project, "cfg", configFile.name, configFile)
}
</source>
</configuration>
</execution>
</executions>
</plugin>
如何将MavenProjetHelper注入到我的scriptlet中?可能吗?我不想创建Mojo或Groovy Mojo,我希望将它内联在POM中。
UPDATE: 如果不清楚:上面的例子完美地工作,但使用了不推荐使用的API(MavenSession.lookup)。这个问题只有在可能将任何东西注入gmaven scriptlet的时候。
对不起,复活一个死线。我完全错过了这是多大年纪。我认为这是因为某些原因今年6月28日。 – Keegan
除了有趣的事实,GMaven已经死了,你有一个名为gmavenplus的项目,我不得不说,你的回答与我的问题完全没有关系。我知道,构建助手可以附加构件,但据我所知,使用构建助手附加动态构件列表是不可能的,这是由我的脚本完成的。问题只是关于依赖注入的可能性。 –
我提到了构建助手,因为我不确定您是否知道使用正则表达式来匹配您的工件以方便起见,但实际上他们事先知道它们是什么。如果情况并非如此,请忽略我答案的第一段。 至于我回答的第二部分,我不能理解原来的问题。我的理解是,你不明白为什么你的脚本不工作(我没有尝试运行你的例子)。我发布的示例应该与您的示例做同样的事情,并且我已经验证它的工作原理。如果我误解了你的意图,请澄清,我会再试一次。 – Keegan