SonarQube Local Script in IntelliJ can't find

2019-03-21 23:06发布

问题:

My maven build works fine in IntelliJ IDEA. That is not the issue. The issue is relating to SonarQube Community Plugin.

ERROR 17:08:38.358 > java.io.IOException: Cannot run program "mvn" (in directory "/Users/chrismanning/Projects/Registry/registry/idea-files"): error=2, No such file or directory

Local analysis script:

mvn sonar:sonar 
-DskipTests=true 
-Dsonar.analysis.mode=issues
-Dsonar.scm.enabled=false 
-Dsonar.scm-stats.enabled=false 
-Dissueassignplugin.enabled=false 
-Dsonar.preview.excludePlugins=emailnotifications,issueassign 
-Dsonar.report.export.path=sonar-report.json

I definitely have maven installed and in my path. (it's symlinked in /usr/local/bin)

chrismanning@Chriss-MacBook-Pro:~/Projects/Registry/registry/idea-files$ mvn -version
Apache Maven 3.2.5 (12a6b3acb947671f09b81f49094c53f426d8cea1; 2014-12-14T12:29:23-05:00)
Maven home: /Users/chrismanning/apache-maven-3.2.5
Java version: 1.8.0_40, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "10.10.3", arch: "x86_64", family: "mac"

M2_HOME and PATH are propely defined in /etc/launchd.conf

回答1:

If you're using Yosemite (like I am) you must set environmental variables this way

  1. Create new file at ~/Library/LaunchAgents/environment.plist

  2. Add this code block and modify to appropriately set your environmental variables

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
      <key>Label</key>
      <string>my.startup</string>
      <key>ProgramArguments</key>
      <array>
        <string>sh</string>
        <string>-c</string>
        <string>
        launchctl setenv JAVA_HOME /Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home
        launchctl setenv M2_HOME /Users/chrismanning/apache-maven-3.2.5
        </string>        
      </array>
      <key>RunAtLoad</key>
      <true/>
    </dict>
    </plist>
    
  3. Save and restart your computer. This is the proper way to load Yosemite environmental variables

If you are using an older version of Mac OS X, see this answer

Setting environment variables in OS X?