Dan*_*lan 10 maven-plugin maven
我找到了这个描述,但它似乎并不全面。可能有人在细节之间有什么区别解释executions并configurations在Maven插件?
Ste*_*stl 12
An<execution>导致插件在 maven 构建生命周期期间执行,即在您的构建期间。将<configuration>允许您配置应该如何执行过程中的行为插件。许多 Maven 插件提供有关其配置选项的文档,例如maven-compiler-plugin。
您可以<configuration>在<plugin>级别或<execution>级别上定义s 。前者对所有执行全局有效,后者特定于执行。
全局执行特定配置的示例:
假设您必须使用 Java 1.7 编译您的项目,但您想尽早采用 Java 9 Jigsaw功能并将 a 添加module-info.java到您的项目中。此 Java 文件不会使用源代码级别 1.7 进行编译。您可以做的是定义 maven-compiler-plugin 的两个执行,一个编译除module-info.java源级别 1.7之外的所有内容,另一个只编译module-info.java源级别 1.9:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<!-- Global plugin configuration for source and target levels. -->
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
<executions>
<!-- Compile all code except module-info.java with the configured source level -->
<execution>
<id>default-compile</id>
<phase>compile</phase>
<goals>
<goal>compile</goal>
</goals>
<configuration>
<excludes>
<exclude>module-info.java</exclude>
</excludes>
</configuration>
</execution>
<!-- Compile module-info.java with source level 1.9 -->
<execution>
<id>compile-module-info-java</id>
<phase>compile</phase>
<goals>
<goal>compile</goal>
</goals>
<configuration>
<source>1.9</source>
<target>1.9</target>
<includes>
<include>module-info.java</include>
</includes>
</configuration>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
我认为@Stefan 的回答已经很清楚了。如果有帮助,我想更详细一点。
插件下的“执行”声明“什么时候应该做什么”。基本上,execution通常至少包含:phase和goal(我知道您并不总是在配置中看到它,但从概念上讲它们在那里),您可以将其视为:当构建过程到达时phase,goal插件的动作将是执行。
当然,execution一个插件可以有多个s,这样不同/相同的目标可以在不同/相同的阶段运行。
然后来configuration。有时你需要告诉插件关于插件应该如何操作的额外细节,因为插件可能无法猜测默认情况下你想要做什么。 configuration正在做这样的工作。你可以参考插件目标的文档,看看他们接受什么样的配置。
Plugin levelconfiguration将应用于插件的所有executions,同时您也可以configuration在 each 下定义execution,作为execution-specific 配置。插件级别configuration+ 执行级别configuration是execution.
| 归档时间: |
|
| 查看次数: |
3977 次 |
| 最近记录: |