Maven Ban Circular Dependencies

本文介绍如何通过Maven的enforcer插件配置来避免项目中出现循环依赖的问题。使用了特定版本的maven-enforcer-plugin及extra-enforcer-rules插件实现此目标。

Maven 禁止循环依赖配置如下:

<project>
  [...]
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-enforcer-plugin</artifactId>
        <version>1.4.1</version>
        <executions>
          <execution>
            <id>enforce-ban-circular-dependencies</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <banCircularDependencies/>
              </rules>
              <fail>true</fail>
            </configuration>
          </execution>
        </executions>
        <dependencies>
          <dependency>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>extra-enforcer-rules</artifactId>
            <version>1.0-beta-6</version>
          </dependency>
        </dependencies>
      </plugin>
    </plugins>
  </build>
  [...]
</project>

参考

Ban Circular Dependencies:http://www.mojohaus.org/extra-enforcer-rules/banCircularDependencies.html

离线Maven项目右侧dependencies爆红通常是由于依赖未正确下载等原因导致,以下是一些解决办法: - **重新加载Maven项目**:Maven的依赖管理工具能够依据`pom.xml`文件对项目依赖进行更新。在IntelliJ IDEA中,可在右侧的Maven工具窗口中,点击 “Reimport All Maven Projects” 图标(两个绿色的循环箭头) [^1]。 - **删除带`lastUpdated`后缀的文件**:IDEA的Maven Projects下的Plugins和Dependencies下出现红色波浪线报错,可能是部分包没有下载全,文件后缀为`lastUpdated`。需要把带`lastUpdated`的文件全部删除,先找到文件的位置,查看maven仓库的位置(即`repository`),一般默认路径如`~/.m2/repository/org/apache/maven/plugins/maven - deploy - plugin/2.8.2` ,删除这些文件后再尝试重新导入依赖 [^2]。 - **借助bat脚本删除`lastUpdated`文件**:可以使用bat脚本进行批量删除。示例脚本如下: ```batch @echo off rem crazy coder rem 下面写你的仓库路径 set REPOSITORY_PATH=D:/repository rem 正在搜索... for /f "delims=" %%i in ('dir /b /s "%REPOSITORY_PATH%\*lastUpdated*"') do ( del /s /q %%i ) pause ``` 将`REPOSITORY_PATH`替换为实际的Maven仓库路径,运行该脚本可以删除所有带`lastUpdated`后缀的文件 [^4]。 - **配置本地镜像**:可以在`settings.xml`中配置本地镜像,示例配置如下: ```xml <mirror> <id>localmaven</id> <mirrorOf>*</mirrorOf> <name>local</name> <url>file://D:/maven</url> </mirror> ``` 这样Maven会从指定的本地路径去查找依赖 [^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值