IkeHelpMojo.java
package network.ike.plugin;
import org.apache.maven.api.plugin.MojoException;
import org.apache.maven.api.plugin.annotations.Mojo;
/**
* Displays available IKE build tool goals.
*
* @see <a href="https://github.com/IKE-Network/ike-pipeline">IKE Pipeline</a>
*/
@Mojo(name = "help", projectRequired = false)
public class IkeHelpMojo implements org.apache.maven.api.plugin.Mojo {
@org.apache.maven.api.di.Inject
private org.apache.maven.api.plugin.Log log;
/**
* Access the Maven logger.
*
* @return the logger
*/
protected org.apache.maven.api.plugin.Log getLog() { return log; }
/** Creates this goal instance. */
public IkeHelpMojo() {}
@Override
public void execute() throws MojoException {
getLog().info("");
getLog().info("IKE Build Tools — Available Goals");
getLog().info("══════════════════════════════════════════════════════════════");
getLog().info("");
getLog().info(" ── Workspace Goals ──────────────────────────────────────");
getLog().info(" ike:dashboard Composite overview (verify+status+cascade)");
getLog().info(" ike:status Git status across all repos");
getLog().info(" ike:verify Check manifest + VCS bridge state");
getLog().info(" ike:cascade Show downstream impact of a change");
getLog().info(" ike:graph Print dependency graph");
getLog().info(" ike:init Clone/initialize repos from manifest");
getLog().info(" ike:pull Git pull --rebase across repos");
getLog().info(" ike:stignore Generate .stignore for Syncthing");
getLog().info(" ike:check-branch Warn on direct branching (git hook)");
getLog().info(" ike:ws-sync Sync workspace.yaml ↔ actual branches");
getLog().info("");
getLog().info(" ── Editor Goals ─────────────────────────────────────────");
getLog().info(" ike:adocstudio Generate Adoc Studio sidecar projects (macOS)");
getLog().info("");
getLog().info(" ── VCS Bridge Goals ─────────────────────────────────────");
getLog().info(" ike:setup Install VCS bridge hooks to ~/.git-hooks/");
getLog().info(" ike:sync Reconcile git state after machine switch");
getLog().info(" ike:commit Catch-up + commit");
getLog().info(" ike:push Catch-up + push");
getLog().info("");
getLog().info(" ── Gitflow Goals ────────────────────────────────────────");
getLog().info(" ike:feature-start Create feature branch across repos");
getLog().info(" ike:feature-start-draft Preview feature branch creation (interactive)");
getLog().info(" ike:feature-finish-squash Squash-merge (default, deletes branch)");
getLog().info(" ike:feature-finish-merge No-ff merge, keeps branch alive");
getLog().info(" ike:feature-finish-rebase Rebase onto target, linear history");
getLog().info(" ike:ws-checkpoint Record multi-repo checkpoint (SHAs+versions)");
getLog().info(" ike:ws-checkpoint-draft Preview checkpoint without writing files or tags");
getLog().info("");
getLog().info(" ── Release Goals ────────────────────────────────────────");
getLog().info(" ike:help This help message");
getLog().info(" ike:release-draft Preview release + bump to next SNAPSHOT");
getLog().info(" ike:generate-bom Auto-generate BOM from ike-parent");
getLog().info(" ike:site-draft Report deployed-site drift (version, registration)");
getLog().info(" ike:site-publish Deploy + register; -Dsite=removed to uninstall");
getLog().info("");
getLog().info("Options for ike:adocstudio:");
getLog().info(" -Dadocstudio.sourceDir=<path> Assembly root (default: current dir)");
getLog().info(" -Dadocstudio.outputDir=<path> Sidecar dir (default: ~/Documents/ike-adoc-studio)");
getLog().info("");
getLog().info("Options for workspace goals:");
getLog().info(" -Dworkspace.manifest=<path> Path to workspace.yaml (auto-detected)");
getLog().info(" -Dgroup=<name> Restrict to group (status, init, pull)");
getLog().info(" -Dcomponent=<name> Component for ike:cascade (required)");
getLog().info(" -Dformat=dot Graphviz DOT output for ike:graph");
getLog().info("");
getLog().info("Options for VCS bridge goals:");
getLog().info(" -Dmessage=<msg> Commit message (ike:commit)");
getLog().info(" -DaddAll=true Stage all changes before commit");
getLog().info(" -Dpush=true Push after commit");
getLog().info(" -Dremote=<name> Remote name (default: origin)");
getLog().info(" -Dforce=true Overwrite existing hooks (ike:setup)");
getLog().info("");
getLog().info("Options for gitflow goals:");
getLog().info(" -Dfeature=<name> Feature name (branch: feature/<name>)");
getLog().info(" -Dgroup=<name> Restrict to group");
getLog().info(" -DskipVersion=true Skip POM version qualification (feature-start)");
getLog().info(" -DtargetBranch=<name> Merge target (default: main)");
getLog().info(" -DkeepBranch=true Keep branch after merge (feature-finish)");
getLog().info(" -Dmessage=<msg> Squash commit message (feature-finish-squash)");
getLog().info(" -Dpublish=true Execute (default is preview)");
getLog().info("");
getLog().info("Options for ike:ws-sync:");
getLog().info(" -Dfrom=repos Update workspace.yaml from repos (default)");
getLog().info(" -Dfrom=manifest Switch repos to match workspace.yaml");
getLog().info(" -Dpublish=true Execute (default is preview)");
getLog().info("");
getLog().info("Options for ike:ws-checkpoint / ike:ws-checkpoint-draft:");
getLog().info(" -Dname=<name> Checkpoint name (required)");
getLog().info(" -DdeploySite=true Deploy site for each component");
getLog().info(" -DskipVerify=true Skip tests during build");
getLog().info(" -Dpublish=true Execute without writing files or tags");
getLog().info("");
getLog().info("Options for ike:release:");
getLog().info(" -DreleaseVersion=<v> Version to release (auto-derived from POM)");
getLog().info(" -DnextVersion=<v> Next SNAPSHOT (auto-derived)");
getLog().info(" -Dpublish=true Execute (default is preview)");
getLog().info(" -DskipVerify=true Skip 'mvnw clean verify'");
getLog().info(" -DallowBranch=<name> Allow release from non-main branch");
getLog().info(" -DdeploySite=false Skip site deployment");
getLog().info("");
getLog().info("Options for ike:site-{draft,publish} (#398):");
getLog().info(" -DupdateSite=false Skip the gh-pages site deploy");
getLog().info(" -DupdateRegistration=false Skip the landing-page registration");
getLog().info(" -Dsite=removed Uninstall: deregister + remove site");
getLog().info(" -DreleaseVersion=<v> Override version (default: POM, -SNAPSHOT stripped)");
getLog().info("");
}
}