我写了一个maven插件,我正在一些项目中使用它。在第一个项目中,它只有一次执行,我可以直接用
mvn com.mycompany:my-plugin:0.0.1-SNAPSHOT:do-stuff
在第二个项目中,插件有多个执行,当我尝试上面的命令时,我最终失败了,因为插件尝试使用空参数执行。
请注意,在这两种情况下,插件在作为流程资源阶段的一部分执行时都可以正常工作。只有当我试图执行插件目标时,它才会失败。有人能帮我理解为什么第二个示例尝试使用空白参数执行吗?
第一个项目(一次执行-工程罚款):
<plugin>
<groupId>com.mycompany</groupId>
<artifactId>my-plugin</artifactId>
<version>0.0.1-SNAPSHOT</version>
<configuration>
<sourceFiles>
<sourceFile>loadfile</sourceFile>
</sourceFiles>
<outputFile>outputFile</outputFile>
</configuration>
<executions>
<execution>
<phase>process-resources</phase>
<goals>
<goal>do-stuff</goal>
</goals>
</execution>
</executions>
</plugin>
第二个项目(多次执行-不可行):
<plugin>
<groupId>com.my-company</groupId>
<artifactId>my-plugin</artifactId>
<version>0.0.1-SNAPSHOT</version>
<executions>
<execution>
<id>default</id>
<phase>process-resources</phase>
<configuration>
<sourceFiles>
<sourceFile>file1</sourceFile>
</sourceFiles>
<outputFile>outputFile</outputFile>
</configuration>
<goals>
<goal>do-stuff</goal>
</goals>
</execution>
<execution>
<id>novice</id>
<phase>process-resources</phase>
<configuration>
<sourceFiles>
<sourceFile>file1</sourceFile>
<sourceFile>file2</sourceFile>
</sourceFiles>
<outputFile>outputFile</outputFile>
</configuration>
<goals>
<goal>do-stuff</goal>
</goals>
</execution>
</executions>
</plugin>
在第二个示例中,您拥有的唯一配置是在执行
中。在执行绑定之外没有配置
块,所以直接调用插件目标自然不会收到任何参数(因为当前的配置
块特定于绑定)。
一个解决方案是有一个默认的配置
块(如在第一个示例中)特定于执行
的配置,或者从命令行提供配置
参数(如果适用)。
作为最后一点——并非有意冒犯,每个程序员有时都会错过简单的解决方案——因为它是你的插件,你可以只更改配置规范,让你在一个配置
块:)中定义你需要的一切。我认为你不必这么做,因为唯一的原因似乎是你对
m2e
的具体问题,但这肯定是摆在桌面上的一个选项。
我正在尝试使用shade插件创建一个可执行JAR的简单示例。我逐行浏览了这里的示例,在我的机器上似乎根本没有执行shade插件。 我的阴影POM代码是: 运行“mvn包”后,创建的JAR不包含任何项目依赖项。从调试跟踪来看,似乎从未调用过shade插件。要让shade发挥其魔力,是否还需要一些额外的步骤? 编辑:示例的完整代码位于https://github.com/hutch31/maven-s
问题内容: 从jmeter-maven-plugin执行JMeter时可以使用JMeter 插件吗? 更新 我尝试按照Ardesco的有用答案将依赖项添加到插件定义中,但是却得到了无数的。它 看起来 像Maven是不是把执行的JMeter时的传递依赖的类路径。有任何想法吗? 问题答案: 尽管此答案被接受,但仅适用于2.X之前的版本。但是对于高于2.X的版本,请参见此答案。 使用2.6.0版或更高版
我正在使用版本3.0.0和版本6.18中的Maven Checkstyle插件。 这是我的初始配置: 运行将使构建失败,因为存在check style错误。这是意料之中的。 然而,当我使用构建成功,没有任何错误(仍然显示问题)。 我的期望是,当我使用配置。我做错了什么? 更新(2018年5月4日):我为此提出了一个错误。
我是maven的新手,学习如何以及何时在插件中执行阶段/目标 假设我的pom中有以下代码片段 现在,如果我执行mvn安装,安装之前的modello的所有阶段(以及每个阶段对应的所有目标)都将执行。正当 但是,如果进行以下修改以引入特定目标,则只会执行一个目标,即java目标(因为它位于安装阶段之前的生成源代码阶段)。对吗?
在我当前的项目设置中,maven shade插件的执行非常不稳定。这个插件看起来像是在我构建父模块之后执行的,但是在那个实例中执行之后,它在独立构建子模块时无法执行。 我的父母是 还有孩子pom 以及在具有上述pom的子模块上运行“安装”目标时的构建输出 如您所见,尽管在< code >中定义了执行,maven shade插件并没有执行
我正在使用org.codehaus.mojo exec-maven-plugin通过我的pom.xml项目执行一个可执行的。jar文件。目前这不起作用,我不确定为什么。当我指定CommandLineArgs时会发生错误。 我的插件如下所示: