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

Please provide a comment!
Invalid security code. Please try again.

Recent Entries

BX-AI 1.2 Released: Claude 4 Support, New Tooling API, CFML Compatibility & More!

BX-AI 1.2 Released: Claude 4 Support, New Tooling API, CFML Compatibility & More!

We’re excited to announce the release of BoxLang AI v1.2, a major update to the BoxLang AI module that powers intelligent applications with a unified AI abstraction layer across even more providers: OpenAI, Claude, Grok, Gemini, and more. This release packs new features for providers, tools, debugging, and customization — making it easier than ever to build multi-runtime, AI-driven BoxLang and CFML applications.

Luis Majano
Luis Majano
June 19, 2025
Ortus Solutions invited at America Digital 2025

Ortus Solutions invited at America Digital 2025

Our participation is more than a presence, it is a commitment to represent El Salvador’s growing influence in the global tech ecosystem and to inspire others to embrace modern software practices.

This invitation is a recognition of our contributions to open source and a reminder of the importance of building with purpose. Whether through BoxLang, ColdBox, or any of our other tools, our focus remains the same: to empower developers, elevate teams, and enable the future of digital transformation.

Maria Jose Herrera
Maria Jose Herrera
June 18, 2025
Introducing the BoxLang Version Manager!

Introducing the BoxLang Version Manager!

We're excited to announce the release of BVM (BoxLang Version Manager), a powerful new tool that makes managing multiple BoxLang installations effortless across Mac, Linux, and Windows Subsystem for Linux (WSL). Whether you're a BoxLang developer working on multiple projects or testing across different versions, BVM is designed to streamline your workflow.

Luis Majano
Luis Majano
June 17, 2025