You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by GitBox <gi...@apache.org> on 2022/06/06 11:39:04 UTC
[GitHub] [maven-fluido-skin] stevecrox commented on pull request #32: Mskins 191 dynamic library retrieval
stevecrox commented on PR #32:
URL: https://github.com/apache/maven-fluido-skin/pull/32#issuecomment-1147355223
I am interested in this skin, because maven allows me to incorporate documentation and analysis into a site. The problem is the current site style has dated.
Historically full stack development has JS/HTML/CSS stored in an appropriate resources directory of a java project. This made developing frontends painful.
Node.js/NPM appeared 10 years ago and you could build a mini webserver fairly easy with express and iterate there was much joy. We hit the problem I am addressing in this PR.
The format NPM releases a project is different to Maven.
There are several common approaches to integrate the UI with the backend
1) write a release time script which calls Maven and generates a JAR when the NPM project releases.
2) Use the latest java wrapper for JS
3) Write the front end so its hosted statically in its own webserver and the UI calls to the backend
4) Use the front end plugin to pull down the dependecies
The problem with 1 is what we see here and requires bootstrap to make a change to support you.
The problem with 2 (e.g. webjars) is Web Development is happy in its ecosystem. So adoption always fails (Personally I loved the maven extension that let me package js).
Approach 3 isn't valid here, fundamentally what this skin offers are some resources and a template file to apache velocity.
The last approach is what I have chosen, we use the frontend plugin to retrieve node/npm which are stored in a temporary directory. We use NPM to retrieve the releases and then the minify plugin to generate the JS artifacts.
The result is no additional dependencies for users of the skin, there should be zero change from their perspective.
I saw the comment on CDN, I have always worked in defense companies. Defense company infosec departments are not reasonable (and iften non technical) meaning this sort of stuff is developed in effectively air gapped environments and I have spent way to much of my life designing and pushing for mirrors of real world infrastructure. One of the reasons I love Maven is as a toolit makes redirecting to local mirrors really easy.
As for why this change?
I have a bootstrap 5 skin supporting a fixed navbar top but its a complete rewrite. Bootstrap has its examples and then there are HTML layouts
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@maven.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org