maven中plugins和pluginmanagement的区别

pluginmanagement标签一般用在父pom中,子元素可以包含plugins插件,比如

<pluginManagement>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <version>2.1</version>
            <configuration>
                <attach>true</attach>
            </configuration>
            <executions>
                <execution>
                    <phase>compile</phase>
                    <goals>
                        <goal>jar</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</pluginManagement>

 

然后,在子pom文件中就可以这样使用:

<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-source-plugin</artifactId>
    </plugin>
</plugins>

 

省去了版本、配置等信息,只需指定groupId和artifactId即可。

但是在父pom中,如果使用这个标签来包裹plugins插件,当在此项目根目录运行对应的mvn命令时,如果在子pom中没有直接像上面再次引用这个plugin,那么不会触发这个plugin插件,只有在子pom中再次引用了之后,才会在对应的子项目路径下触发这个plugin.

plugins和pluginManagement标签都需要在build标签中。
---------------------
作者:joenqc
来源:优快云
原文:https://blog.youkuaiyun.com/joenqc/article/details/54910629
版权声明:本文为博主原创文章,转载请附上博文链接!

Maven 无法解析插件 `org.apache.maven.plugins:maven-compiler-plugin:3.14.0` 通常与网络连接、本地仓库损坏或插件版本不存在等问题相关。以下是一些常见的解决方法: ### 1. 检查 Maven 配置文件中的插件声明 确保 `pom.xml` 文件中正确声明了 `maven-compiler-plugin`,并且版本号是有效的。例如: ```xml <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.14.0</version> <configuration> <source>${jdk.version}</source> <target>${jdk.version}</target> </configuration> </plugin> ``` 如果使用的是较新的 JDK 版本,建议确认 `maven-compiler-plugin` 是否支持该 JDK,并根据需要调整版本号 [^2]。 ### 2. 清理 Maven 本地仓库 Maven 的本地存储库可能包含损坏的元数据文件或部分下载的插件包,导致插件无法正确解析。可以手动删除这些文件以强制 Maven 重新下载: - **默认路径**:`~/.m2/repository`(Linux/macOS)或 `C:\Users\YourUsername\.m2\repository`(Windows) - **操作步骤**: - 找到 `org/apache/maven/plugins/maven-compiler-plugin` 相关目录。 - 删除其中的 `.lastUpdated` 文件任何 `.xml` 文件(如 `maven-metadata-local.xml`)。 - 运行 `mvn clean install` 或 `mvn dependency:resolve` 以触发重新下载 [^3]。 ### 3. 使用命令行更新插件 可以通过命令行显式更新插件依赖: ```bash mvn dependency:purge-local-repository mvn plugin:update-maven-plugin -Dplugin=org.apache.maven.plugins:maven-compiler-plugin ``` 这将清理本地仓库并尝试更新插件版本 [^3]。 ### 4. 更换 Maven 镜像源 如果网络连接不稳定,可以尝试更换 Maven 的镜像源。在 `settings.xml` 中添加阿里云或其他国内镜像配置: ```xml <mirror> <id>aliyun</id> <name>Aliyun Maven Mirror</name> <url>https://maven.aliyun.com/repository/public</url> <mirrorOf>central</mirrorOf> </mirror> ``` 这将加速插件依赖的下载过程,并提高解析成功率 [^3]。 ### 5. 确认插件版本是否存在 有时指定的插件版本可能尚未发布或已被移除。访问 [Maven Central](https://search.maven.org/) 并搜索 `maven-compiler-plugin 3.14.0`,确认该版本是否可用。如果不可用,请选择一个已发布的稳定版本(如 `3.13.0` 或 `3.12.1`) [^1]。 ### 6. 强制使用特定插件版本 在 `settings.xml` 中可以全局定义插件管理器,以避免版本冲突: ```xml <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.14.0</version> </plugin> </plugins> </pluginManagement> ``` 这有助于统一项目中使用的插件版本,减少解析错误的可能性 [^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值