I have a top-level maven project with submodules. The first submodule is a Java project which generates some JavaScript library code from the compiler's annotation processor. I want to include those generated JS files into the second submodule, a webpack NPM managed project, for the build and then publish the webpack BACK into the first submodule before packaging into a fat-jar. Does anyone know of a way to accomplish this?
Multimodule Maven Project with interdependencies?
185 Views Asked by Deven Phillips At
1
There are 1 best solutions below
Related Questions in MAVEN
- Access objects variable & method by name
- Pass variables to extended class
- Threading Segfault when reading members
- __PHP_Incomplete_Class Object even though class is included before session started
- How to declare a class with a constructior outside of a function C++
- ClassCastException: datastructures.instances.JClass cannot be cast to java.util.ArrayList
- Java: set and get methods for strings
- Allow extension of class by injection of user-made subclass, while preserving accessibility
- Efficiency penalty of initializing a struct/class within a loop
- Possible to add a new class that can be cast to an existing final class?
Related Questions in MULTI-MODULE
- Access objects variable & method by name
- Pass variables to extended class
- Threading Segfault when reading members
- __PHP_Incomplete_Class Object even though class is included before session started
- How to declare a class with a constructior outside of a function C++
- ClassCastException: datastructures.instances.JClass cannot be cast to java.util.ArrayList
- Java: set and get methods for strings
- Allow extension of class by injection of user-made subclass, while preserving accessibility
- Efficiency penalty of initializing a struct/class within a loop
- Possible to add a new class that can be cast to an existing final class?
Related Questions in MAVEN-REACTOR
- Access objects variable & method by name
- Pass variables to extended class
- Threading Segfault when reading members
- __PHP_Incomplete_Class Object even though class is included before session started
- How to declare a class with a constructior outside of a function C++
- ClassCastException: datastructures.instances.JClass cannot be cast to java.util.ArrayList
- Java: set and get methods for strings
- Allow extension of class by injection of user-made subclass, while preserving accessibility
- Efficiency penalty of initializing a struct/class within a loop
- Possible to add a new class that can be cast to an existing final class?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
What you describe is a circular dependency. You have to break this circular dependency. (You probably do similar things in your code all the time.)
I have solved the same problem by breaking up the Java project. Once you do that you will recognize that, in fact, your first project was serving two separate roles that then become separated:
From:
To:
I've often seen this happen in multi-module projects that build into a WAR file, and I've adopted the rule of thumb that the WAR project should not have any Java (production) code, acknowledging its role as the aggregator/assembler.
Some folks will think this third project is frivolous, some always argue that you're easily getting too many Maven modules. I think that often stems from tooling or build pipeline limitations, once you break through those, you can just embrace a growing number of Maven modules, given that the boundaries are chosen well, and I see no problems here.
One hesitation, though: why is the JavaScript project separate to begin with? If it is not deployed separately (evidently it isn't since you're assembling the "fat-jar"), the JavaScript code is following the delivery lifecycle of the "fat-jar", which would benefit from being in the same source repository, so why even make it a separate Maven module? (If they were in separate source repositories, there's a cost in version management between the modules that I'm unsure you have reasons for.) There's no shame in having a monolith (if done well -- it happens, microservices make you believe otherwise, but in that world you'd probably deploy the JavaScript code separately anyway).