Skip to main content
Redhat Developers  Logo
  • AI

    Get started with AI

    • Red Hat AI
      Accelerate the development and deployment of enterprise AI solutions.
    • AI learning hub
      Explore learning materials and tools, organized by task.
    • AI interactive demos
      Click through scenarios with Red Hat AI, including training LLMs and more.
    • AI/ML learning paths
      Expand your OpenShift AI knowledge using these learning resources.
    • AI quickstarts
      Focused AI use cases designed for fast deployment on Red Hat AI platforms.
    • No-cost AI training
      Foundational Red Hat AI training.

    Featured resources

    • OpenShift AI learning
    • Open source AI for developers
    • AI product application development
    • Open source-powered AI/ML for hybrid cloud
    • AI and Node.js cheat sheet

    Red Hat AI Factory with NVIDIA

    • Red Hat AI Factory with NVIDIA is a co-engineered, enterprise-grade AI solution for building, deploying, and managing AI at scale across hybrid cloud environments.
    • Explore the solution
  • Learn

    Self-guided

    • Documentation
      Find answers, get step-by-step guidance, and learn how to use Red Hat products.
    • Learning paths
      Explore curated walkthroughs for common development tasks.
    • Guided learning
      Receive custom learning paths powered by our AI assistant.
    • See all learning

    Hands-on

    • Developer Sandbox
      Spin up Red Hat's products and technologies without setup or configuration.
    • Interactive labs
      Learn by doing in these hands-on, browser-based experiences.
    • Interactive demos
      Click through product features in these guided tours.

    Browse by topic

    • AI/ML
    • Automation
    • Java
    • Kubernetes
    • Linux
    • See all topics

    Training & certifications

    • Courses and exams
    • Certifications
    • Skills assessments
    • Red Hat Academy
    • Learning subscription
    • Explore training
  • Build

    Get started

    • Red Hat build of Podman Desktop
      A downloadable, local development hub to experiment with our products and builds.
    • Developer Sandbox
      Spin up Red Hat's products and technologies without setup or configuration.

    Download products

    • Access product downloads to start building and testing right away.
    • Red Hat Enterprise Linux
    • Red Hat AI
    • Red Hat OpenShift
    • Red Hat Ansible Automation Platform
    • See all products

    Featured

    • Red Hat build of OpenJDK
    • Red Hat JBoss Enterprise Application Platform
    • Red Hat OpenShift Dev Spaces
    • Red Hat Developer Toolset

    References

    • E-books
    • Documentation
    • Cheat sheets
    • Architecture center
  • Community

    Get involved

    • Events
    • Live AI events
    • Red Hat Summit
    • Red Hat Accelerators
    • Community discussions

    Follow along

    • Articles & blogs
    • Developer newsletter
    • Videos
    • Github

    Get help

    • Customer service
    • Customer support
    • Regional contacts
    • Find a partner

    Join the Red Hat Developer program

    • Download Red Hat products and project builds, access support documentation, learning content, and more.
    • Explore the benefits

Manage Java transitive dependencies with Lightwell rebuilds

November 3, 2026
Matej Marušák
Related topics:
SecurityJavaDevSecOps
Related products:
Lightwell

    Updating direct dependencies in Java is straightforward, but securing the hundreds of transitive libraries running beneath them is where many development pipelines stall. While automated tools simplify how teams upgrade direct dependencies—the packages your project explicitly declares—the Java ecosystem presents a challenge: pinned versions and deeply nested trees of transitive dependencies. Transitive dependencies are the libraries your direct dependencies rely on behind the scenes, which your package manager pulls in automatically.

    When security vulnerabilities occur deep within library dependencies, such as the core Java framework zero-day flaw discovered by Lightwell, traditional updating tools often leave security teams and developers choosing between tedious manual overrides and silent exposure.

    To address this, Lightwell provides security-focused enterprise rebuilds of open source Java libraries. Because enterprise build workflows and compliance policies vary, Lightwell allows engineering teams to choose how they ingest these trusted packages into their pipelines.

    This article outlines the core problem behind Java transitive dependencies, how custom presets improve direct updates, and 3 flexible strategies for integrating Lightwell library rebuilds into enterprise pipelines directly.

    The hidden challenge in Java software supply chains

    In ecosystems like npm or PyPI, version ranges allow build tools to automatically pull nonbreaking library updates. In contrast, Java build tools like Maven and Gradle default to strictly pinned versions.

    While tools like Renovate or Dependabot automate updates for direct dependencies, they cannot resolve transitive dependencies automatically. Custom Renovate presets, such as those available in our lightwell-experience/renovate-config GitHub repository, help automated tools recognize Lightwell rebuilds for direct dependencies.

    However, transitive dependencies vastly outnumber direct dependencies in modern Java applications. Patching only direct dependencies leaves the majority of the application supply chain untouched.

    3 integration strategies for Lightwell rebuilds

    No 2 development teams handle updates the same way—a heavily audited banking service needs different guardrails than a fast-moving internal tool. Finding the right workflow means balancing developer autonomy with security overhead.

    Option 1: Manual discovery and individual selection

    In strictly regulated environments requiring explicit remediation for verified vulnerabilities, teams can query the Lightwell catalog or API endpoints using specific CVE identifiers or artifact names to manually select updated builds.

    Reviewing dependencies individually gives you granular control over what enters production, but manually vetting hundreds of libraries across dozens of microservices does not scale.

    Option 2: Targeted dependency analysis

    This approach evaluates the complete dependency hierarchy against the Lightwell index and generates a detailed report that maps standard components directly to Lightwell rebuilds. Teams can review these findings against internal governance policies and apply fixes at their discretion.

    You get a clear report of available fixes without touching your build files yet. The downside is execution: developers still have to copy recommended coordinates into their pom.xml by hand.

    Practical example

    Note

     The script used in the following examples demonstrates the concept and serves as a starting point, but it is not a production-ready solution.

    Consider the pin-transitives.mjs utility hosted in the lightwell-experience/renovate-config GitHub repository. The script analyzes the transitive dependency tree and queries Renovate to identify matching updates, generating this report:

    $ node pin-transitives.mjs
    Resolved 32 dependencies (1 direct)
    
    Direct dependencies (1)
      org.springframework:spring-core  5.3.18 → 5.3.18.rhlw-00001
    
    Transitive dependencies (8)
      com.jayway.jsonpath:json-path  2.8.0 → 2.8.0.rhlw-00001
    <...snip>

    This output highlights each newly available rebuild release. Note that advanced filtering mechanisms and CVE tracking are not yet built into the utility script.

    Option 3: Dependency pinning with generated bills of materials

    Like targeted dependency analysis, this approach evaluates the entire dependency tree against the Lightwell catalog. It then generates a bill of materials (BOM) with dependencyManagement declarations that pin standard packages directly to Lightwell rebuilds hardened for security.

    This approach delivers full auditability and precise version enforcement, while letting individual product teams fall back to upstream releases when needed. The trade-off is that it requires continuous execution in your build pipelines and adds ongoing maintenance during BOM updates.

    Practical example

    As with option 2, using the pin-transitives.mjs script with the --write flag produces a structured BOM file:

    $ node pin-transitives.mjs --write
    <snip>
    $ cat lightwell-pins.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <project>
      <modelVersion>4.0.0</modelVersion>
      <groupId>com.lightwell</groupId>
      <artifactId>rhlw-pins</artifactId>
      <version>0.0.1</version>
      <packaging>pom</packaging>
      <dependencyManagement>
        <dependencies>
          <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>5.3.18.rhlw-00001</version>
          </dependency>
          <dependency>
            <groupId>com.jayway.jsonpath</groupId>
            <artifactId>json-path</artifactId>
            <version>2.8.0.rhlw-00001</version>
          </dependency>
        </dependencies>
      </dependencyManagement>
    </project>

    You can incorporate the generated lightwell-pins.xml file directly into your project either as a parent POM or by importing it within the dependencyManagement element of your main build configuration:

    <...snip>
    <dependencyManagement>
      <dependencies>
        <dependency>
          <groupId>com.lightwell</groupId>
          <artifactId>rhlw-pins</artifactId>
          <version>0.0.1</version>
          <type>pom</type>
          <scope>import</scope>
        </dependency>
      </dependencies>
    </dependencyManagement>
    <...snip>

    This configuration instructs Maven to use patched Lightwell binaries across listed libraries. Because Maven selects the first declaration it encounters, you can place targeted overrides above this import without modifying the underlying BOM file.

    Strategy comparison matrix

    StrategyPrimary mechanismSetup effortGovernance and controlBest used for
    Manual discoveryConsole UI or API searchHigh (manual)Complete (individual selection)Critical legacy systems with strict change controls
    Dependency analysisReporting and analysis automationMediumModerate (informational)Teams evaluating security posture before upgrading
    Scripted pinningGenerated BOM filesMedium (CI/CD pipeline)High (auditable and overridable)Enterprise applications needing strict audit trails

    Can this be done centrally?

    Although configuring automated and centralized updates is technically feasible, we discourage this strategy and recommend evaluating alternative approaches. Opaque redirection mechanisms, such as proxy services that silently swap upstream content for Lightwell artifacts, introduce security risks by creating nonreproducible and unverifiable builds. While relocations (see the official Maven documentation) remain visible to build systems and appear accurately in generated software bill of materials (SBOM) artifacts, approach them with caution.

    Next steps

    For many teams maintaining active CI/CD pipelines, automated BOM generation offers a strong middle ground, combining precise version locking with predictable pull-request review cycles.

    The provided reference script demonstrates this pattern and can serve as a starting point for production implementations. At the same time, the Lightwell team continues working with customers to refine implementation patterns and collaborating across platforms to simplify the overall developer experience.

    To explore Renovate configurations in greater detail or experiment with sample pipeline integrations, visit our lightwell-experience/renovate-config GitHub repository or browse the Lightwell catalog to see which patched builds are available for your architecture.

    Related Posts

    • Test Lightwell dependency upgrades locally

    • Package and run your Java Maven application on OpenShift in seconds

    • Add automated AI evaluations to your CI/CD pipeline

    • Managing edge solutions with Red Hat: A layered approach

    • Building trustworthy AI: A developer's guide to production-ready systems

    • How to secure your Jenkins pipeline with Red Hat Advanced Developer Suite

    Recent Posts

    • Manage Java transitive dependencies with Lightwell rebuilds

    • JBoss EAP clustering in OpenShift: KUBE_PING discovery

    • How to run I/O workloads on OpenShift Virtualization VMs

    • Onboard your repository to Testing Farm with Claude Code

    • Benchmarking tiered KV cache offloading on H100 GPUs in OpenShift AI 3.5

    What’s up next?

    Our Open Source Security Signals report is here. Learn how the latest trends in the open source community are shaping enterprise security strategies.

    Read the report
    Red Hat Developers logo LinkedIn YouTube Twitter Facebook

    Platforms

    • Red Hat AI
    • Red Hat Enterprise Linux
    • Red Hat OpenShift
    • Red Hat Ansible Automation Platform
    • See all products

    Build

    • Developer Sandbox
    • Developer tools
    • Interactive tutorials
    • API catalog

    Quicklinks

    • Learning resources
    • E-books
    • Cheat sheets
    • Blog
    • Events
    • Newsletter

    Communicate

    • About us
    • Contact sales
    • Find a partner
    • Report a website issue
    • Site status dashboard
    • Report a security problem

    RED HAT DEVELOPER

    Build here. Go anywhere.

    We serve the builders. The problem solvers who create careers with code.

    Join us if you’re a developer, software engineer, web designer, front-end designer, UX designer, computer scientist, architect, tester, product manager, project manager or team lead.

    Sign me up

    Red Hat legal and privacy links

    • About Red Hat
    • Jobs
    • Events
    • Locations
    • Contact Red Hat
    • Red Hat Blog
    • Inclusion at Red Hat
    • Cool Stuff Store
    • Red Hat Summit
    © 2026 Red Hat

    Red Hat legal and privacy links

    • Privacy statement
    • Terms of use
    • All policies and guidelines
    • Digital accessibility
    Ask AI