代码之家  ›  专栏  ›  技术社区  ›  committedandroider

为什么在intellij终端中运行maven时仍然得到不允许的操作?

  •  0
  • committedandroider  · 技术社区  · 2 年前

    我在macOS上

    从终端我可以运行maven/mvn fine

    letsun@letsun-mac ais% mvn --version                                               
    Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
    Maven home: /Users/letsun/Downloads/apache-maven
    Java version: 1.8.0_371, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/jdk-1.8.jdk/Contents/Home/jre
    Default locale: en_US, platform encoding: UTF-8
    OS name: "mac os x", version: "13.2.1", arch: "x86_64", family: "mac"
    letsun@letsun-mac ais% 
    letsun@letsun-mac ais% sudo chmod 777  /Users/letsun/Downloads/apache-maven/bin/mvn
    

    chmod 777应该允许系统范围内访问这个maven文件/二进制文件

    现在,当我在Intellij中打开一个终端并尝试运行mvn命令时,我总是收到一个“不允许操作”的错误

    letsun@letsun-mac ais % which mvn
    /Users/letsun/Downloads/apache-maven/bin/mvn
    letsun@letsun-mac ais % mvn --version
    /bin/sh: /Users/letsun/Downloads/apache-maven/bin/mvn: Operation not permitted
    

    有人知道这里的问题是什么吗?通过运行which可以看到,Intellij终端的mvn指向与工作二进制相同的二进制。

    我试过重新启动Intellij,但这并没有解决问题

    1 回复  |  直到 2 年前
        1
  •  0
  •   Freeman    2 年前

    也许这与macOS的“系统完整性保护”(SIP)安全功能有关?正如我所知,默认情况下,SIP会阻止对系统文件和目录的修改,包括 /usr /bin 目录。 所以移动 apache-maven 目录到不受SIP限制的位置,例如 /usr/local
    例如这样:

    sudo mv /Users/letsun/Downloads/apache-maven /usr/local/
    

    然后别忘了更新 PATH

    export PATH="/usr/local/apache-maven/bin:$PATH"
    

    最后重新启动IntelliJ并尝试运行 mvn 命令。
    祝你好运