I understand that this is against the best practices of maven, but perhaps my situation is one of the few exceptions to the rule - at least I'm stuck in thinking about alternatives :(
Wednesday:
- We have a legacy application with its own technological interfaces for the outside world.
- we want to use flash as a new interface
- based on an outdated interface, we generate flash classes and pack them into flash-swc, which will be used by third-party developers.
- Based on the deprecated interface, we generate Java classes that connect Flash service requests (coming through blazeds) to our deprecated interface.
- to make it more complex, we donβt want / cannot use pom for it for each interface, since we have dozens of them (interfaces), and they will differ only from their artifactId. Instead, I use the "general" project structure, which will be parameterized (by jenkins) for each assembly. The project will be used only in a fully automated environment.
At first I tried to put all this in one βsimpleβ project, which works to such an extent that artifacts must be installed.
My current approach is a multi-module project structure inspired by a link to chapter 13 of the maven chapter, which has some drawbacks:
GenericProject | +-- GenerateSources from legacy interface | +-- pom.xml | +-- Java | +-- pom.xml | +-- SWC | +-- pom.xml | +-- pom.xml
This approach has the disadvantage that I have links from "Java" and "SWC" to the internal "GenerateSource" structure, which is ugly but tolerable.
What really bothers me is that I have to tweak the installation and deployment plugins a lot to get artifacts with the name and version of the legacy interface that caused the whole process. Now I run it, but it looks very fragile.
I considered splitting / duplicating a project in two simple projects:
- GenerateSources and Java
- GenerateSources and SWC
But that would only allow minor annoyance with cross-references.
As Aaron noted in his comment, I am unclear in the statement of the problem. After several experiments, it became much clearer: In fact, I have two problems to solve
- set / deploy two artifacts together
- name artifacts other than
project.artifactId
Any suggestions to make the whole process more like maven?
Thanks in advance.
source share