Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8107899
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 6, 20262026-06-06T00:55:24+00:00 2026-06-06T00:55:24+00:00

I have a web application, built with Maven, consisting of a Java (Spring) backend

  • 0

I have a web application, built with Maven, consisting of a Java (Spring) backend and Javascript (ExtJS/OpenLayers) frontend. This web app has slowly become the base for a number of derivative or child web applications. By that I mean we have a single webapp whose functionality has been extended for a few domain specific problems which has resulted in a set of webapps all relying on common functionality.

Up until now we’ve been ‘managing’ the problem by having a SVN repo with the core code that the derivative webapps branch from and allows us to occasionally merge changes between the branches. This method has all sorts of problems but there were historical reasons for why it was chosen, luckily we are now in a position to rectify this.

A better solution seems to be turning the common core code into a library (not hard) and having the derivative children link to it. Unfortunately a large chunk of the common functionality exists in the javascript (ExtJS widgets and the like) so simply generating a JAR library won’t suffice. We need a way to have the ‘core javascript’ files make their way into the child webapps, although it’s not possible to truly treat them like java classes our codebase does the best job it can by leveraging the Ext JS class system.

My question is whether there are any solutions out there to help manage this problem? Has anyone had any luck doing something similar with Maven? Is this such a rare case that I might have to resort to creating my own maven plugins or should I be searching for a new build tool?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-06T00:55:27+00:00Added an answer on June 6, 2026 at 12:55 am

    So after evaluating a few different tools + ideas I’ve found that the best fit for our project(s) is a combination of Maven and SVN externals. We address the frontend/backend dependencies separately:

    Backend – Core: Build the core as a typical JAR package (nothing special here)

    Frontend – Core: Have the core frontend included in the same repository as the core backend. It will be in a webapp directory that isn’t packaged by the core JAR build, instead it will be packaged separately into a ZIP file using the maven assembly plugin:

    pom.xml

    <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <version>2.3</version>
        <configuration>
            <descriptors>
                <descriptor>src/assembly/webapp.xml</descriptor>
            </descriptors>
        </configuration>
        <executions>
            <execution>
                <id>make-assembly</id>
                <phase>package</phase>
                <goals>
                    <goal>single</goal>
                </goals>
            </execution>
        </executions>
    </plugin>
    

    webapp.xml

    <assembly>
        <id>webapp</id>
        <formats>
            <format>zip</format>
        </formats>
        <includeBaseDirectory>false</includeBaseDirectory>
        <fileSets>
            <fileSet>
                <directory>${project.basedir}/src/main/webapp/core/</directory>
                <outputDirectory/>
                <includes>
                    <include>**</include>
                </includes>
            </fileSet>
        </fileSets>
    </assembly>
    

    Backend – Child : Typical maven dependency on core

    Frontend – Child : Either references the core frontend using an SVN external or by using a pre built package dropped somewhere into the webapp. Using the external allows Eclipse to transparently develop the core + child frontends, using the pre built package is much ‘easier’ to manage but harder to migrate changes.

    Overall the system is relatively easy to manage, the only non intuitive parts come with releases which complicate the svn externals. But with ‘proper’ release branching + tagging it’s nothing that can’t be dealt with.

    I’ve also written a blog post comparing and contrasting all the options we considered – https://cgsrv1.arrc.csiro.au/blog/2012/06/15/managing-an-extensible-javajavascript-application/

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have a Spring framework based Java web application, which has been built in
I have a Spring-MVC 3.0 web application built with Maven. All Spring dependency versions
I have a spring based web application MyWebapp built using maven and deployed on
I have built a web application using Java EE platform that sells one of
So I have a spring mvc web application that I built in IntelliJ 9,
I have a Flex/Java web application that uses Maven as a build tool. Currently,
I have a web application built using maven. It is built in the form
I have a Maven-built web application that uses Hibernate. It runs successfully in Tomcat,
I have built a Spring 3 MVC driven RESTful web service app. I use
All, I have a PHP Web application built using Zend Framework and MVC with

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.