Blog

Luis Majano

June 06, 2025

Spread the word


Share your thoughts

We're excited to announce a supercharged feature for BoxLang developers: Maven Integration! This powerful addition opens the door to the entire Java ecosystem, allowing you to seamlessly incorporate thousands of Java libraries into your BoxLang applications with just a few simple commands.

Why Maven Integration Matters

BoxLang has always been about combining the best of both worlds - the simplicity of dynamic languages with the power of the JVM. With Maven integration, we're taking this philosophy to the next level by giving you instant access to:

  • 📚 Thousands of Java libraries from Maven Central
  • 🔧 Automatic dependency management - no need to manage it manually or copy jars around
  • Zero configuration - it just works out of the box
  • 🧹 Clean management - add and remove dependencies with simple commands

This integration that we ship with BoxLang is at the runtime home level. However, it can easily be adapted to individual applications if needed, in case you are in shared environments.

How It Works

The magic happens through BoxLang's pre-configured pom.xml file located in your BoxLang home directory (~/.boxlang). The workflow is simple:

  1. Add dependencies to the pom.xml file
  2. Run mvn install to download libraries
  3. Start using Java libraries immediately in your BoxLang code

That's it! BoxLang automatically loads all JARs from the lib/ folder, making them available throughout your runtime. For our full documentation please visit our book: https://boxlang.ortusbooks.com/getting-started/configuration/maven-integration

Real-World Examples

Let's see this in action with some practical examples that showcase the power of this integration.

Generate QR Codes in Seconds

Need to create QR codes? Just add the ZXing dependency:

<dependency>
    <groupId>com.google.zxing</groupId>
    <artifactId>core</artifactId>
    <version>3.5.2</version>
</dependency>

Then use it in your BoxLang code:

function createQRCodeGenerator() {
    return {
        "saveToFile": ( text, filePath, size = 300 ) => {
            var writer = new com.google.zxing.qrcode.QRCodeWriter()
            var bitMatrix = writer.encode( 
                text, 
                new com.google.zxing.BarcodeFormat().QR_CODE, 
                size, 
                size 
            )
            
            var image = new com.google.zxing.client.j2se.MatrixToImageWriter()
                .toBufferedImage( bitMatrix )
            var file = new java.io.File( filePath )
            
            new javax.imageio.ImageIO().write( image, "PNG", file )
            return filePath
        }
    }
}

// Generate QR code for your website
qrGenerator = createQRCodeGenerator()
qrFile = qrGenerator.saveToFile( 
    "https://boxlang.ortussolutions.com", 
    "/tmp/boxlang-qr.png", 
    400 
)
println( "QR code saved to: " & qrFile )

Create Professional PDFs

Want to generate dynamic PDFs? Add iText and you're ready to go:

<dependency>
    <groupId>com.itextpdf</groupId>
    <artifactId>itext7-core</artifactId>
    <version>8.0.2</version>
    <type>pom</type>
</dependency>

Now create beautiful PDFs programmatically:

function createStyledPDF( filePath, title, content ) {
    var writer = new com.itextpdf.kernel.pdf.PdfWriter( filePath )
    var pdf = new com.itextpdf.kernel.pdf.PdfDocument( writer )
    var document = new com.itextpdf.layout.Document( pdf )
    
    // Add styled title
    var titleParagraph = new com.itextpdf.layout.element.Paragraph( title )
        .setFontSize( 20 )
        .setBold()
    document.add( titleParagraph )
    
    // Add content
    var contentParagraph = new com.itextpdf.layout.element.Paragraph( content )
        .setFontSize( 12 )
    document.add( contentParagraph )
    
    document.close()
    return filePath
}

// Generate a professional report
reportPDF = createStyledPDF(
    "/tmp/quarterly-report.pdf",
    "Q4 2024 Business Report",
    "BoxLang continues to revolutionize dynamic programming on the JVM."
)

Getting Started

Getting started with Maven integration is incredibly simple:

1. Install Maven

macOS (Homebrew):

brew install maven

Windows (Chocolatey):

choco install maven

Linux (Ubuntu/Debian):

sudo apt install maven

2. Navigate to BoxLang Home

cd ~/.boxlang

3. Add Dependencies

Edit the pom.xml file and add your desired dependencies. Search Maven Central for libraries.

4. Install Dependencies

mvn install

5. Start Coding!

All dependencies are now available in your BoxLang applications immediately.

Why This Changes Everything

Maven integration fundamentally transforms what's possible with BoxLang:

🎯 Instant Access to Specialized Libraries

Need machine learning? Add Weka or DL4J. Want advanced image processing? Add ImageIO extensions. Need specialized data formats? There's probably a Java library for that.

🔄 Dependency Management Made Simple

Gone are the days of manually downloading JARs and managing versions. Maven handles transitive dependencies, version conflicts, and updates automatically.

📈 Enterprise-Ready from Day One

Access to mature, battle-tested Java libraries means your BoxLang applications can handle enterprise requirements without reinventing the wheel.

🧪 Easy Experimentation

Want to try a new library? Add it to your pom.xml, run mvn install, and start experimenting. Don't like it? Run mvn clean and it's gone.

What's Next?

This is just the beginning! Maven integration opens up a world of possibilities for BoxLang developers. We're excited to see what amazing applications you'll build with access to the entire Java ecosystem.

Some areas we're particularly excited about:

  • Machine Learning: Integrate Weka, DL4J, or other ML libraries
  • Scientific Computing: Use Apache Commons Math for statistical operations
  • Data Formats: Work with Excel files, XML processing, and specialized formats
  • External Integrations: Connect to cloud services, databases, and APIs with dedicated clients

Try It Today!

Maven integration is available now in the latest version of BoxLang. Here's how to get started:

  1. Update BoxLang to the latest version
  2. Navigate to your BoxLang home (cd ~/.boxlang)
  3. Edit the pom.xml file to add dependencies
  4. Run mvn install
  5. Start building amazing applications!

Professional Open Source

BoxLang is a professional open-source product, with three different licences:

  1. Open-Source Apache2
  2. BoxLang +
  3. BoxLang ++

BoxLang is free, open-source software under the Apache 2.0 license. We encourage and support community contributions. BoxLang+ and BoxLang ++ are commercial versions offering support and enterprise features. Our licensing model is based on fairness and the golden rule: Do to others as you want them to do to you. No hidden pricing or pricing on cores, RAM, SaaS, multi-domain or ridiculous ways to get your money. Transparent and fair.

BoxLang Subscription Plans

BoxLang is more than just a language; it's a movement.

Join us and redefine development on the JVM Ready to learn more? Explore BoxLang's Features, Documentation, and Community.

Join the BoxLang Community ⚡️

Be part of the movement shaping the future of web development. Stay connected and receive the latest updates on surrounding anything BoxLang

Subscribe to our newsletter for exclusive content.

Follow Us on Social media and don’t miss any news and updates:

Add Your Comment

Recent Entries

BoxLang v1.8.0 : Revolutionary HTTP Client, SOAP Integration, and Production-Grade Stability

BoxLang v1.8.0 : Revolutionary HTTP Client, SOAP Integration, and Production-Grade Stability

The BoxLang team is excited to announce BoxLang 1.8.0, a massive release that revolutionizes HTTP capabilities, introduces comprehensive SOAP/WSDL integration, and delivers over 100 critical bug fixes for production-grade stability. This release focuses on modern web application development with fluent APIs, streaming support, persistent connection management, and extensive CFML compatibility improvements.

Luis Majano
Luis Majano
December 05, 2025
Ortus & BoxLang November Recap 2025

Ortus & BoxLang November Recap 2025

November 2025 was a big month at Ortus. BoxLang 1.7.0 arrived with real-time streaming, distributed caching, and faster compiler internals. ColdBox gained a cleaner debugging experience with full Whoops support, while CBWIRE 5 launched with stronger security, smarter lifecycles, and easier uploads.

Victor Campos
Victor Campos
December 02, 2025
Thanksgiving Week Extended + Cyber Monday Deals Are Live!

Thanksgiving Week Extended + Cyber Monday Deals Are Live!

Because you asked; we’re extending the Thanksgiving Week offer and officially launching our Cyber Monday BoxLang Deals today!

To support everyone who wants to understand whether they’re running on legacy CFML or modern-ready code, and whether BoxLang is the right fit; we’ve decided to extend the dates and increase the number of companies we can support.

Maria Jose Herrera
Maria Jose Herrera
December 01, 2025