jf conan
Run native Conan commands with Artifactory integration and optional build-info collection.
When to Use
Use jf conan to run Conan C/C++ package manager commands with Artifactory integration. This enables:
- Resolving Conan packages from Artifactory's Conan repository
- Publishing packages to Artifactory
- Collecting build-info for C/C++ builds
Prerequisites
- Conan must be installed and configured with
conan remote addto point to your Artifactory Conan repository. - Configure a server with
jf config addorjf c add. - Authentication to Artifactory is required.
Build: jf conan
jf conanRun native Conan commands with Artifactory integration and optional build-info collection.
To run Conan with Artifactory integration:
Synopsis
jf conan <conan-arguments> [options]
Aliases: none
Arguments
| Argument | Required | Description |
|---|---|---|
<conan-arguments> | Yes | Arguments and options for the Conan command (for example, install, create) |
Build Options
| Flag | Default | Description |
|---|---|---|
--build-name | — | Build name for build-info. Requires --build-number. |
--build-number | — | Build number for build-info. Requires --build-name. |
--module | — | Optional module name for build-info. Requires --build-name and --build-number. |
--project | — | JFrog Artifactory project key |
Build Examples
View Help
jf conan --helpInstall Dependencies with Build-Info
jf conan install . --build=missing --build-name=<build-name> --build-number=<build-number>Where:
--build=missingbuilds packages from source if pre-built binaries are not available<build-name>is a name for the build (e.g.,my-cpp-app)<build-number>is a number or identifier for the build run (e.g.,1)
For example:
jf conan install . --build=missing --build-name=my-cpp-app --build-number=1Create a Package
jf conan create . --name=hello --version=1.0 --build-name=<build-name> --build-number=<build-number>For example:
jf conan create . --name=hello --version=1.0 --build-name=my-cpp-app --build-number=1Important Notes
- No separate config command: Unlike other build tools, Conan does not have a
jf conan-configcommand. Configure Conan remotes to point to Artifactory using standardconan remote add. - Conan 2.x compatibility: Ensure your Conan version is compatible with the CLI version. Check
conan --versionandjf --version. - Build-info: Use
--build-nameand--build-numberto track dependencies and artifacts.
CI/CD Example (GitHub Actions)
# .github/workflows/build.yml
steps:
- uses: actions/checkout@v4
- name: Setup JFrog CLI
uses: jfrog/setup-jfrog-cli@v4
env:
JF_URL: ${{ vars.JF_URL }}
JF_ACCESS_TOKEN: ${{ secrets.JF_ACCESS_TOKEN }}
- name: Setup Conan
run: |
pip install conan
conan remote add artifactory https://acme.jfrog.io/artifactory/api/conan/conan-local
- name: Install dependencies
run: jf conan install . --build=missing --build-name=my-cpp-app --build-number=${{ github.run_number }}
- name: Upload packages
run: jf conan upload "*" --all -r artifactory --build-name=my-cpp-app --build-number=${{ github.run_number }}
- name: Publish build info
run: jf rt build-publish my-cpp-app ${{ github.run_number }}Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| Conan cannot resolve from Artifactory | Conan remote not configured | Run conan remote add artifactory <artifactory-conan-url> |
| 401 / 403 on upload | Invalid credentials or insufficient permissions | Re-run jf config add; verify conan remote credentials |
| Conan 2.x compatibility issues | CLI version and Conan version mismatch | Check conan --version and jf --version for compatibility |
| Build-info not collected | --build-name and --build-number not passed | Add both flags to the Conan command |
Enable debug logging: export JFROG_CLI_LOG_LEVEL=DEBUG
Related Topics
- Build Tools Overview — Capabilities matrix and tool reference
- Native Mode — Supported packages with Native Mode
Updated 8 days ago
