- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章Maven中plugins与pluginManagement的区别说明由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
plugins 下的 plugin 是真实使用的,而 pluginManagement 下的 plugins 下的 plugin 则仅仅是一种声明,父项目是不能使用的,子项目中可以对 pluginManagement 下的 plugin 进行信息的选择、继承、覆盖等.
假如存在两个项目,项目A为项目B的父项目,其关系通过pom文件的关系确定。项目A的父pom文件片段如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<
pluginManagement
>
<
plugins
>
<
plugin
>
<
groupId
>org.apache.maven.plugins</
groupId
>
<
artifactId
>maven-resources-plugin</
artifactId
>
<
version
>3.1.0</
version
>
<
configuration
>
<
delimiters
>
<
delimiter
>@</
delimiter
>
</
delimiters
>
<
useDefaultDelimiters
>false</
useDefaultDelimiters
>
</
configuration
>
</
plugin
>
</
plugins
>
</
pluginManagement
>
|
如果项目B也想使用该plugin配置,则在项目B的子pom文件中只需要如下配置:
1
2
3
4
5
6
|
<
plugins
>
<
plugin
>
<
groupId
>org.apache.maven.plugins</
groupId
>
<
artifactId
>maven-resources-plugin</
artifactId
>
</
plugin
>
</
plugins
>
|
可以看到,子项目的pom文件中,省去了版本、配置细节等信息,只需要指定groupId和artifactId,其他信息均从父项目的pom文件继承。如果子pom文件需要定制自己的插件,可以另行设置,并会覆盖从父pom文件继承到的内容.
特别提示:dependencies 和 dependencyManagement 均是 project 下的直接子元素,但是 plugins 和 pluginManagement 却是 project 下 build 的直接子元素.
在配置SonarQube的时候遇到了一些问题,例如surefire跟failsafe应该写在哪里 。
pluginManagement的作用类似于denpendencyManagement,只是denpendencyManagement是用于管理项目jar包依赖,pluginManagement是用于管理plugin.
与pom build里的plugins区别是,这里的plugin是列出来,然后让子pom来决定是否引用.
如果要让子模块继承父模块的plugin的使用,还是要在父模块里头声明这些plugin 。
另外说一下,关于packaging,pom意味着这个包本身不会被打成jar. 。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我.
原文链接:https://blog.csdn.net/y_bccl27/article/details/120460875 。
最后此篇关于Maven中plugins与pluginManagement的区别说明的文章就讲到这里了,如果你想了解更多关于Maven中plugins与pluginManagement的区别说明的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
基本上就是标题。。我在任何地方都找不到一个简单的比较,来解释这两者之间的差异:。我知道Gradle中可以有3种类型的插件:。我认为这三种类型的插件在某种程度上与它们可以在settings.gradle
Maven 使用 dependencyManagement 对依赖进行管理,与之类似地,Maven 中还提供了一个名为 pluginManagement 的元素,它可以帮助用户管理 Maven 插件。
那里 我有一个父 pom.xml,它定义了 maven-ear-plugin 的默认配置 org.apache.maven.plugins
我在 中定义插件版本父 POM 的部分,并希望在 中使用它们子模块部分。 这是有效的,除非插件在子模块的配置文件中使用。在这种情况下,来自父 POM 的 的版本部分被忽略。 mvn -v 的输出
我想用孵化 plugins block至build.gradle : plugins { id "com.jfrog.bintray" version "0.4.1" } 默认情况下,这会从
我正在尝试为报告配置 Maven Checkstyle 插件,并希望将 Checkstyle 的依赖项更改为 7.5 而不是默认的 6.11.2。 为了实现这一点,我在父 pom 中声明了 plugi
我有 maven-jaxb2-plugin。我生成 jaxb 对象并将其引用到其他项目类中。我已将 jaxb 插件和编译器插件放在 pluginManagement 标记下。 Maven首先执行编译阶
来自 maven documentation pluginManagement: is an element that is seen along side plugins. Plugin Manag
我有一个非常简单的测试脚本只是为了学习pytest,tmp.py: def square(x): return x*x def test_square(): assert square
我的 parent pom 明确在两者中声明对 maven-javadoc-plugin 2.9.1 的依赖 org.apache.maven.plugi
我有一个具有以下结构的 pom.xml 文件: 4.0.0 someParentGroupId someParentArtifactId
当我使用 tomcat-plugin 时,我有一个奇怪的行为,在我的父项目中,我在插件管理中声明了插件配置。 我有 3 个子 war 项目,其中两个声明了插件,一个没有声明插件。 由于未知原因,插件在
我的项目继承的POM包含一些对于 release指定一些额外的插件 arguments . 我的问题是:有没有办法覆盖 arguments在这种情况下来自命令行的参数? 父 POM 有这个:
在 pytest 插件中,我想访问 runtest Hook 内的配置。这可行,但感觉就像黑客。有更干净的方法吗? configuration = None def pytest_configure(
我刚刚创建了一个 grails 应用程序 (Grails 2.2.0) 并构建了 war 文件以将其部署到 apache tomcat 中,但我就是无法启动该应用程序: 这实际上是我的 Catalin
我有一个多模块 Maven 项目,我想让我所有的子模块都使用 maven-compiler-plugin在根中指定 pom.xml .我应该放在哪里 maven-compiler-plugin声明(在
我在 pluginManagement 标签的父 pom.xml 中有 jaxws-maven-plugin,我指的是子 pom 中的这个插件。 mvn clean install 运行良好。但是,
这是我的 pom 文件的片段。 .... org.apache.maven.plugins
在新的 Win8.1x64 机器上安装 Android Studio 后,每当我尝试启动它时,我都会收到 ClassNotFoundException: com.intellij.ide.plugin
这个问题在这里已经有了答案: What is pluginManagement in Maven's pom.xml? (5 个回答) 关闭6年前. 在配置我的 pom.xml 时,我不得不配置一个插
我是一名优秀的程序员,十分优秀!