Maven 插件管理不起作用
这是父POM中的Maven 插件管理不起作用,maven,spring-boot,Maven,Spring Boot,这是父POM中的pluginManagement,它可以由子项目执行,因为子项目中没有定义插件,为什么 <build> <pluginManagement> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId&
pluginManagement
,它可以由子项目执行,因为子项目中没有定义插件,为什么
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
<configuration>
<classifier>exec</classifier>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
</build>
org.springframework.boot
springbootmaven插件
重新包装
执行官
但是如果我从Parnat POM中删除此插件,那么子项目将无法执行。在父POM中,您需要有如下内容:
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>1.5.7.RELEASE</version>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
<configuration>
<classifier>exec</classifier>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
</build>
org.springframework.boot
springbootmaven插件
1.5.7.1发布
重新包装
执行官
然后,在扩展此POM的项目中,您只需执行以下操作:
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</pluginManagement>
</build>
org.springframework.boot
springbootmaven插件
这里的想法是,您不需要到处复制相同的代码。您可以在一个中心位置定义设置,然后仅扩展它们
在原始代码中,没有定义
。通常,在父POM-s中,您希望控制
和
的版本。对于依赖项,还可以定义
和
之类的内容
对于插件,您可以集中定义相同的配置,然后,如果出现您希望它稍微不同的情况,您可以在扩展POM中应用必要的更改
如果在父POM中,在
部分之外还有
的定义,那么这些插件将被调用用于扩展此父POM的任何项目