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
autoUploadFailureLogsAutomatically upload the two most recent unredacted logs to the available backend after a final compilation or actual deployment failure
autoUploadFailureLogsExcludeRegexApply a contains match to the final error summary and exclude the automatic upload when it matches

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

Automatic failure-log uploads require both autoUploadFailureLogs explicitly set to true and an available backend. A missing or empty exclusion regex applies no filtering, while an invalid regex causes the plugin to skip that upload. Automatic diagnostic bundles go only to the currently available backend, never the public service. See Report an issue for bundle contents and trigger boundaries.

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.