New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement Maven support for assemblies #6927

Closed
quintesse opened this Issue Feb 21, 2017 · 2 comments

Comments

Projects
None yet
2 participants
@quintesse
Contributor

quintesse commented Feb 21, 2017

Improvement on #6712 to add Maven support.

Possible implementations:

  • The first idea is to convert Maven artifacts to Ceylon modules by simply adding the JARs to the assembly as if they were legacy modules (adding module.properties files where needed) and adding an overrides.xml file to change the Maven imports to Ceylon imports.
  • The second idea is to put the Maven artifacts in a separate folder inside the assembly, with their pom.xml files, and use the MavenRepository to access them. It's probably the simplest in implementation.
  • The third idea would be like the second one, but using the AetherRepository instead. It's probably the hardest to get right and should only be considered if the other two ideas don't work out (but it's also the one most likely to get every aspect of Maven support right).

Edit: finally went with the second solution

@quintesse quintesse added the c-tools label Feb 21, 2017

@quintesse quintesse self-assigned this Feb 21, 2017

@quintesse quintesse added this to the 1.3.2 milestone Feb 21, 2017

quintesse added a commit that referenced this issue Feb 23, 2017

quintesse added a commit that referenced this issue Feb 23, 2017

The `AssemblyRepositoryBuilder` now returns an additional `MavenRepos…
…itory` if it detects the existence of a `maven` folder in the assembly (#6927)

quintesse added a commit that referenced this issue Feb 23, 2017

@quintesse

This comment has been minimized.

Contributor

quintesse commented Feb 23, 2017

Ok, basic support seems to be working. More complex projects like @DiegoCoronel 's ceylon-spring-boot give problems. But the same seems to be true for fat-jar so perhaps @FroMage could take a look at that? (The code for the assemble tool and the fat-jar tool are very similar, I expect that the solution for one would also work for the other).

PS: I tried with the "gateway" module within Diego's project

@quintesse quintesse closed this Feb 23, 2017

@gavinking

This comment has been minimized.

Contributor

gavinking commented Feb 23, 2017

AWESOME.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment