Comments (4)
Maven was pre-installed on the predecessor image circleci/openjdk
. Our Maven Orb currently relies on Maven being installed in the convenience image. There is a parallel initiative to update all certified orbs to the new cimg types. An alternative solution for the Maven Orb would be to implement a new install command for Maven, which would result in a longer build time for maven users.
Maven Orb Stats (30 days):
Builds: 1376
Projects: 43
Orgs: 21
The Maven package reports to be 10MB
Summary
Potential current solutions (please add more):
- Include an install command for Maven orb. The user could bring their own image alternatively.
- Add the Maven package to the
cimg/openJDK
image, adding a layer and 10MB. - Create an OpenJDK image variant with additional tools. This is less consistent with our other images.
- Build new images using OpenJDK as the base specifically for
Maven
andAndroid
for example.
Maven Orb update awaiting this issue: CircleCI-Public/maven-orb#1
from cimg-openjdk.
This is likely a good time to consider Gradle as well. Especially if both can co-exist easily in the same image.
from cimg-openjdk.
Perhaps 3 images:
OpenJDK -> Maven + Gradle -> Android
Could be knocked down to 2 images if we include maven and gradle in the base image. It would add some weight to the image but we'd probably hopefully see better caching since all users would pull it. If we have any idea of how many users are using OpenJDK without Maven/Gradle vs how many are, that could be useful but without that I think I am leaning to include them, and then have another Android image that builds from there.
I however am not a java dev. What types of issues might we see with users wanting a different combo of the version of maven and gradle? Hopefully keeping them both at The most current is acceptable?
from cimg-openjdk.
@KyleTryon The latest version tags for OpenJDK v11.0.x, v12.0.x, and v13.0.x have been respun to include this change.
From your solutions list above, I went with option number 2 as that worked well with our current setup, Maven and Gradle are common Java build tools, and would serve as a nice migration path from the legacy images.
I'd suggest that we also go with option 1 as well though. The orb could use an install command for when someone isn't using the default executor.
from cimg-openjdk.
Related Issues (20)
- Build checkout fails on executors 11 and 13 HOT 6
- docker image 11.0 should match 11.0.11 instead of 11.0.0 HOT 2
- Node.JS upgrade for 16.0.2-node HOT 2
- Update branch in config to reflect branch change to main HOT 1
- OpenJDK 17.0.2 released HOT 3
- Add OpenJDK 18 HOT 2
- Make Truststore Path equal to all versions HOT 2
- Add JDK 20 and 19 HOT 1
- Python version in cimg/openjdk:11.0 HOT 1
- 11.0.17 image fails in gradle build HOT 9
- Jar command not found in Docker image
- Add openjdk 20 HOT 2
- Feature Request: Add Mill build tool for Scala HOT 3
- Bug Report: <BUG> 17.0.8 error with image HOT 1
- Feature Request: Support Java 21 HOT 6
- Bug Report: openjdk 21 image cannot checkout code HOT 1
- Bug Report: Automation parsing is broken due to naming convention changes HOT 1
- Bug Report: Installing ant into 8.0 container no longer works
- Add OpenJDK 17 LTS HOT 3
- Likely JAVA_HOME issue HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cimg-openjdk.