Lift isn't working with a maven multi module project

When using a multi module maven project the first module builds fine, as expected.
The 2nd module which depends on the first one, fails because

Could not resolve dependencies for project org.ibissource:ibis-adapterframework-core:jar:7.9-SNAPSHOT: Could not find artifact org.ibissource:credentialprovider:jar:7.9-SNAPSHOT in nxrm-lift (https://nxrm-proxy.production.lift.sonatype.com//repository/proxy-group/)

I don’t understand why it doesn’t use the local repo. I’ve tried setting the maven install command manually in the .lift.toml file but that doesn’t seem to help. There is nothing in the documentation, or at least nothing I can find, that implies how to use multi-module projects. It all claims it’s smart enough and should work out of the box…

It doesn’t seem to be able to download anything?

Failed to retrieve plugin descriptor for org.apache.maven.plugins:maven-compiler-plugin:3.10.1: Plugin org.apache.maven.plugins:maven-compiler-plugin:3.10.1 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.apache.maven.plugins:maven-compiler-plugin:jar:3.10.1

Thanks in advance!

Hi Niels, can you point me at the PR where you’re seeing this specific issue so we can investigate further?

Thanks!

Hi Matt,

https://lift.sonatype.com/results/github.com/ibissource/iaf/01GJ0D6FD1KZRY618RCMK3NSZP/?ph=PhaseIntroduced&tab=logs

I hope this link works :slight_smile:

Regards,
Niels

Hi Niels,
It appears you had impeccable timing, as our proxy was temporarily down and your scan was affected by the outage. Everything is now running as expected.

To clarify, we use maven to build the project, so your expectations about how it should work, including the usage of the local .m2 repo, should be accurate. Let me know if you experience any other issues.

Good luck and thanks for using Lift!

1 Like

Hi Matt,

You’re right, I’ve gotten a lot further. I do have another question though.
Our build requires a dependency available in a self hosted nexus server. In the pom of the module is a profile (active-by-default) with the repository information.
It however cannot find the dependency and exits with code

org.ibissource:ibis-ladybug:jar:2.3-20221111.190616 in nxrm-lift (https://nxrm-proxy.production.lift.sonatype.com//repository/proxy-group/)

I’m assuming this is a proxy url. I was wondering if there is anything we need to do on our end, or if Lift cannot use external resources.

A link to our build:

https://lift.sonatype.com/results/github.com/ibissource/iaf/01GJ4WCAM35M3RRYV8H8V1F1YM/?ph=PhaseIntroduced&tab=logs

Thanks in advance!

-Niels

Hi Niels,
By default we configure maven builds to use a mirror that is setup in a local settings.xml file. This forces all repository requests to go thought that mirror, which is our own proxy. This helps us reduce external traffic. We only configure the proxy for a few third party sources at the moment, but can add more as needed.

In the meantime, I forked your repo and ran a build with a setup script, and extra flags to skip tests to make your Lift builds quicker.

You can see the results here:
https://lift.sonatype.com/results/github.com/mattjohnson/iaf/01GJ5SP0N7HWNJXKPQ2G95KHPV

You can see my changes here Comparing ibissource:master...mattjohnson:master · ibissource/iaf · GitHub

Note that I enabled only ErrorProne. I don’t recommend doing this, but the analysis was failing when others were enabled. I’ll be looking further into this issue and will hopefully have a fix next week.

Hope this helps in the short term.

1 Like

Hi Matt,

Thanks so much, I’ll merge your changes into our repo asap!
Is there anything we can or should do to with the local settings.xml file? I can imagine just removing it isn’t really an optimal solution.

For now it’s great to see Lift actually doing it’s thing!

Again, thanks for the help so far, I’ll keep an eye out on this topic

(Just a FYI, I found out that our builds didn’t work without explicitly specifying the install goal, even though in our pom it’s the default goal. Just thought you should know.)