javagl / dependencycleaner Goto Github PK
View Code? Open in Web Editor NEWUtility for cleaning up Maven dependencies
License: MIT License
Utility for cleaning up Maven dependencies
License: MIT License
Right now, the tool offers the option to drag-and-drop a pom.xml and figure out its dependencies. (These are passed as a list of https://github.com/javagl/DependencyCleaner/blob/master/src/main/java/de/javagl/dependencycleaner/ArtifactInfo.java objects to the downstream dependency resolution etc).
There should be some more flexibility in that. Particularly, there should also be the option to scan the local .m2
directory for broken JARs. Maybe one could also add some filter or search functionality for that (e.g. "Seach for JARs that have groupID de.javagl
"), or allow scanning only subdirectories. (The .m2
folder can be huge ...)
Are there other options that should be considered?
(Probably, at some point, one might even want to configure local repos, or even extract them from some POM. That would be a second step, but should be kept in mind)
Hello can you add me as a collaborator , would like to contribute :)
Currently, the detection whether a file is "invalid" is solely done by creating a new JarFile
object. For totally broken files, this already throws an exception and thus they are detected.
But there may be files where the famous "Invalid LOC header" message appears, and this seems only to appear when trying to access the classes in the JAR.
The detection of whether a JAR is "invalid" should therefore at least iterate over all entries of the JAR/ZIP file, to see whether they can be accessed.
The current, initial implementation was a first shot to get the basic functionality integrated and working. The result can be considered as a standalone tool that may be useful for someone.
For further development, the basic structure should be cleaned up a little. A first step here would be to more cleanly define the "data model" that the dependency cleaner operates on. Currently, this is mostly summarized in the https://github.com/javagl/DependencyCleaner/blob/master/src/main/java/de/javagl/dependencycleaner/DependencyStatus.java and https://github.com/javagl/DependencyCleaner/blob/master/src/main/java/de/javagl/dependencycleaner/DependencyTreeNode.java classes. These classes mainly serve the purpose of decoupling layer between the dependency cleaner and the Eclipse Aether classes that are used internally for the dependency resolution. The first refactoring would be to pull out the current "model" classes into an own package (and probably convert them into interfaces - this is something that I do basically "by default"), and maybe extend them with some basic MVC support (i.e. the option to add Listeners to be informed about state changes - right now, this is handled in the UI...).
The UI was written quickly and pragmatically. I think it does make sense to present the information in a TreeTable, but maybe other presentations (maybe even based on a different UI toolkit) should be considered. So the UI classes could be pulled into a ui.swing
package.
Although this will not imply many changes from a conceptual point of view, classes will be moved around and renamed, so it should be done as one, coordinated refactoring step.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.