mirror of
https://github.com/forcedotcom/afv-library.git
synced 2026-07-30 11:43:26 +08:00
5.1 KiB
5.1 KiB
Engine Prerequisites
Detailed installation instructions for each Code Analyzer engine's dependencies.
Summary Table
| Engine | Required Dependencies | Optional |
|---|---|---|
| PMD | Java 11+ | Custom ruleset JARs |
| CPD | Java 11+ | — |
| ESLint | Node.js 18+ | Project ESLint config |
| RetireJS | Node.js 18+ | — |
| Regex | None (built-in) | — |
| Flow | Python 3 | — |
| SFGE | Java 11+ (4g+ heap recommended) | — |
| ApexGuru | Authenticated Salesforce org | — |
Core: Salesforce CLI
Required for ALL engines.
macOS
# Via Homebrew (recommended)
brew install sf
# Or via npm
npm install -g @salesforce/cli
Windows
# Via npm
npm install -g @salesforce/cli
# Or download installer from:
# https://developer.salesforce.com/tools/salesforcecli
Linux
# Via npm
npm install -g @salesforce/cli
# Or via tarball:
# https://developer.salesforce.com/docs/atlas.en-us.sfdx_setup.meta/sfdx_setup/sfdx_setup_install_cli.htm
Verify
sf --version
# Expected: @salesforce/cli/2.x.x ...
Code Analyzer Plugin
Required: sf CLI must be installed first.
# Install
sf plugins install @salesforce/plugin-code-analyzer
# Verify
sf code-analyzer --help
# Update to latest
sf plugins install @salesforce/plugin-code-analyzer@latest
# Check version
sf plugins --core | grep code-analyzer
Java 11+ (for PMD, CPD, SFGE)
macOS
# Via Homebrew
brew install openjdk@11
# Add to PATH (add to ~/.zshrc or ~/.bash_profile)
export PATH="/opt/homebrew/opt/openjdk@11/bin:$PATH"
export JAVA_HOME="/opt/homebrew/opt/openjdk@11"
# Or via SDKMAN (manages multiple Java versions)
curl -s "https://get.sdkman.io" | bash
sdk install java 11.0.21-tem
Windows
# Via winget
winget install EclipseAdoptium.Temurin.11.JDK
# Or via Chocolatey
choco install temurin11
Linux
# Ubuntu/Debian
sudo apt install openjdk-11-jdk
# RHEL/CentOS/Fedora
sudo dnf install java-11-openjdk-devel
# Via SDKMAN (any Linux)
curl -s "https://get.sdkman.io" | bash
sdk install java 11.0.21-tem
Verify
java -version
# Expected: openjdk version "11.x.x" or higher
echo $JAVA_HOME
# Should point to JDK installation
Troubleshooting Java
| Issue | Solution |
|---|---|
java: command not found |
Add Java bin dir to PATH |
| Wrong Java version | Set JAVA_HOME explicitly |
| Multiple Java versions | Use sdk use java 11.x.x or update PATH order |
| SFGE heap errors | Increase java_max_heap_size in config |
Node.js 18+ (for ESLint, RetireJS)
macOS
# Via Homebrew
brew install node@20
# Or via nvm (recommended for version management)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
nvm install 20
nvm use 20
Windows
# Via winget
winget install OpenJS.NodeJS.LTS
# Or via nvm-windows
# Download from: https://github.com/coreybutler/nvm-windows/releases
nvm install 20
nvm use 20
Linux
# Via nvm (recommended)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
nvm install 20
nvm use 20
# Or via package manager (may be outdated)
# Ubuntu/Debian (use NodeSource for latest):
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs
Verify
node --version
# Expected: v20.x.x or v18.x.x (minimum v18)
npm --version
# Expected: 9.x.x or 10.x.x
Python 3 (for Flow Engine)
Only needed if you scan Flow files (*.flow-meta.xml).
macOS
# Via Homebrew
brew install python3
# macOS may already have python3 via Xcode Command Line Tools
xcode-select --install
Windows
# Via winget
winget install Python.Python.3.12
# Or from python.org
# https://www.python.org/downloads/windows/
Linux
# Usually pre-installed. If not:
# Ubuntu/Debian
sudo apt install python3
# RHEL/CentOS/Fedora
sudo dnf install python3
Verify
python3 --version
# Expected: Python 3.x.x
Authenticated Org (for ApexGuru)
Only needed for ApexGuru performance analysis.
# Login to a Salesforce org
sf org login web --alias my-org
# Or login with JWT (CI/CD)
sf org login jwt --client-id <id> --jwt-key-file <key> --username <user> --alias my-org
# Verify
sf org display --target-org my-org
Troubleshooting ApexGuru Auth
| Issue | Solution |
|---|---|
No default org |
Set default: sf config set target-org my-org |
Session expired |
Re-login: sf org login web --alias my-org |
Insufficient permissions |
Org needs API access enabled |
Quick Setup Script
For a complete setup on macOS with Homebrew:
# Install all prerequisites
brew install node@20 openjdk@11 python3
# Set Java environment
export JAVA_HOME="/opt/homebrew/opt/openjdk@11"
export PATH="/opt/homebrew/opt/openjdk@11/bin:$PATH"
# Install Salesforce CLI
npm install -g @salesforce/cli
# Install Code Analyzer
sf plugins install @salesforce/plugin-code-analyzer
# Verify everything
sf --version
sf plugins --core | grep code-analyzer
java -version
node --version
python3 --version