Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [m2e-users] Multi pom file project

Have your common code ("library.jar") in one module.  Then have the other modules (secured, unsecured, etc) declare it as a dependency, you can use the maven shade plugin to bundle the dependencies into the jar.



On 18 May 2016 at 14:48, Eric B <ebenzacar@xxxxxxxxx> wrote:
Hi Matthew,

Can you please expand on your concept?  It is tickling something in the back of my mind but I just can't seem to grasp it precisely... 

Thanks,

Eric

On Wed, May 18, 2016 at 1:17 PM, Matthew Piggott <mpiggott@xxxxxxxxxxxx> wrote:
Have one module with the common code then create other modules which shade in the common code dep.

On 18 May 2016 at 12:48, Anton Tanasenko <atg.sleepless@xxxxxxxxx> wrote:
Hi Eric,
Every eclipse project must reside in its own dir, it doesn't allow mixing multiple projects in the same directory.
Eclipse also doesn't allow storing any of its resources outside of their respective project's dir.

So you should definitely convert your project into a proper multimodule build. There is no way your setup will work correctly in eclipse otherwise.

2016-05-18 19:09 GMT+03:00 Eric B <ebenzacar@xxxxxxxxx>:
Sure - but the problem is that they all use the same sources.  And refactoring the code base into 4 separate modules is not really an option.

Right now I'm playing around with poms in subfolders that use :
<sourceDirectory>${basedir}/..</sourceDirectory>

but that means I have to override all the defaults in the maven pom, which is a royal nuissance.  And I'm not even convinced that all plugins will work properly.

Thanks,

Eric


On Wed, May 18, 2016 at 11:51 AM, Jeff Jensen <jjensen@xxxxxxxxxx> wrote:
Best is to move them to 4 separate modules/directory structures.  Then it will work without issues.

On Wed, May 18, 2016 at 10:36 AM, Eric B <ebenzacar@xxxxxxxxx> wrote:
Hi,

I am migrating a legacy app to maven and am having miserable time with one module in particular.  The way the Ant script worked is that it built 3 or 4 artifacts from the same code base.
 - secure-EJB.jar (some subset of classes)
 - secure-EJB-client.jar (client EJB)
 - unsecure-EJB.jar (another subset of classes)
 - library.jar (regular java library with the bulk of classes, apart from the EJB beans/facades)


At first I tried to get Maven to build everything via a single pom, but that was just a recipe for disaster (and broke just about every maven convention I know), so I abandoned the concept altogether. 

Instead, I ended up with 4 poms - each building to a separate target/ folder:
- pom.xml (parent pom, defines all the dependencies required for the build, and includes the 3 next poms as modules)
- pom-ejb-secure.xml (inherits pom.xml)
- pom-ejb-unsecure.xml (inherits pom.xml)
- pom-jar.xml (inherits pom.xml)


pom.xml (snippet):

<modelVersion>4.0.0</modelVersion>
<artifactId>ejb-pom</artifactId>
        <groupId>org.myc</groupId>
<packaging>pom</packaging>


<modules>
<module>pom-securedEjb.xml</module>
<module>pom-unsecuredEjb.xml</module>
<module>pom-jar.xml</module>
</modules>

<properties>
<skipTests>true</skipTests>
</properties>
         ...
         ... 

 
From a command line build (ex: mvn clean deploy), everything works properly, and as expected.  All artifacts are independently built and deployed, at the cost of recompiling the classes for each pom.

However, I have no idea how to load/configure this in Eclipse/m2e such that it sees the different artifacts produced, and more importantly is able to resolve against them when referenced in other open projects (Enable Workspace Resolution).

When I import the maven project, it just "loads" the parent pom.xml and does not recognize that there are modules that need to be loaded/resolved as well.

Is there anything I can do about this?

Thanks,

Eric


_______________________________________________
m2e-users mailing list
m2e-users@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/m2e-users


_______________________________________________
m2e-users mailing list
m2e-users@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/m2e-users


_______________________________________________
m2e-users mailing list
m2e-users@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/m2e-users



--
Regards,
Anton.

_______________________________________________
m2e-users mailing list
m2e-users@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/m2e-users


_______________________________________________
m2e-users mailing list
m2e-users@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/m2e-users


_______________________________________________
m2e-users mailing list
m2e-users@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/m2e-users


Back to the top