Skip to content

Jugg backend project configuration distribution

Project configuration distribution keeps team defaults in one backend. During an update check, the plugin sends the current project name. The backend can return that project's customConfigJson, which the plugin then applies to the local project.

What to distribute

ConfigurationPurpose
serversProvide a list of available backend addresses so the plugin can switch servers later
buildFileRulesMark build-file rules that should participate in change detection
dontFilterIgnoredFileRulesContinue change detection for specified rules in ignored files
moduleCustomConfigsAdd classpaths, synchronization paths, or ignore-filtering behavior for specified modules
customCompilersDistribute custom compiler JARs to a project
embeddedApksSearchRulesConfigure search rules for embedded APKs

The legacy buildFileList field is not recommended for new use. New backends should maintain buildFileRules instead.

Module configuration

moduleCustomConfigs is intended for cases where only certain modules require additional rules:

FieldDescription
moduleStdPathNormalized module path
customClasspathPath to synchronize and add to the classpath
customSyncFilePathPath that only needs synchronization
isDoNotIgnoredKeep the module in changed modules even when it matches an ignore rule

Use this configuration only for modules that genuinely need additional artifacts or synchronization rules. Avoid placing every module in backend configuration.

Custom compiler configuration

The backend can return customCompilers in project configuration so the plugin downloads the team's custom compiler:

FieldDescription
jarFileNameDownloaded JAR filename
pathLocal path or HTTP download URL
md5File verification value

When the self-hosted backend hosts custom compilers, it usually also implements /download_custom_compiler and points path to that download interface.

Configuration maintenance

  • Maintain configuration by project name instead of mixing every team's configuration in one response.
  • Return empty arrays or null by default, and distribute configuration only to projects that need special handling.
  • After configuration changes, ask users to check for updates again or restart the IDE so the configuration is applied to the current project.
  • Do not include passwords, private keys, or other sensitive information in project configuration responses.
  • Version custom compiler JARs and verify their md5 values to support rollback.