Releases: Osiris-Team/1JPM
Latest
3.2.0
Add support for native installers and executables
3.1.0
1JPM automatically resolves parent and child projects
See project.isAutoParentsAndChildren
.
If true updates current pom, all parent and all child pom.xml
files with the respective parent details, adding seamless multi-module/project support.
This expects that the parent pom is always inside the parent directory,
otherwise a performant search is not possible since the entire disk would need to be checked.
1JPM helps porting your multi-module project
Add JPM.java to your root project directory and add JPM.portChildProjects();
before building.
This is going to download and copy the latest JPM.java file into all child projects it can find
in this directory, and also run it to generate an initial pom.xml for that child project.
The child projects name will be the same as its directory name.
A child project is detected
if a src/main/java folder structure exists, and the parent folder of src/ is then used as child project root.
Note that a child project is expected to be directly inside a subdirectory of this project.
Now project.isAutoParentsAndChildren
will work properly, since all needed pom.xml files should exist.
3.0.3
- improve dir structure and move ThisProject class so that it is accessible from outside
- add sync run config and .vscode tasks run configs
3.0.1
made various properties public
3.0.0
(ChatGPT) Here's a summary list for the diff:
-
Imports Updated:
- Replaced
BiConsumer
withConsumer
.
- Replaced
-
ThisProject Class:
- Moved the
forceImplementation
comment. - Added comments for adding additional plugins.
- Rearranged and clarified dependency addition comments.
- Moved the
-
Class Removed:
- Removed
Plugins
class definition.
- Removed
-
ThirdPartyPlugins Class:
- Added instantiation in static block of
JPM
class to ensure plugins are added.
- Added instantiation in static block of
-
Dependency Class:
- Added
fromGradleString
static method. - Added
excludedDependencies
andtype
attributes. - Added
exclude
methods. - Updated
toString
andtoXML
methods to handle new attributes.
- Added
-
Repository Class:
- Added
isSnapshotsAllowed
attribute. - Updated
toXML
method to handleisSnapshotsAllowed
.
- Added
-
XML Class:
- Renamed
getOrCreateElement
togetElementOrCreate
. - Added
remove
andrename
methods. - Added
getElementOrNull
helper method.
- Renamed
-
Plugin Class:
- Updated
beforeToXMLListeners
to useConsumer<Details>
. - Removed configuration, executions, and dependencies fields.
- Added
Details
inner class to encapsulate plugin details and manage configuration, executions, and dependencies. - Updated
toXML
method to useDetails
.
- Updated
-
Execution Class:
- Updated
toXML
method to handle optionalid
.
- Updated
-
Project Class:
- Defaulted
plugins
toJPM.plugins
. - Added
profiles
attribute and related methods. - Updated
testImplementation
,implementation
,addDependency
, andforceImplementation
methods to returnDependency
. - Added
putPlugin
method for plugin management. - Added
addProfile
andtoXML
methods. - Updated
generatePom
to usetoXML
.
- Defaulted
-
Profile Class:
- Added
Profile
class extendingProject
. - Overridden
toXML
method for profiles.
- Added
2.2.0
- fix goals being put not added
- made plugin api nicer to work with
2.1.1
✅ Production ready
At least working here: https://github.com/Osiris-Team/AutoPlug-Client/blob/master/src/main/java/JPM.java
2.1.0
- multiple fixes
- allow plugins access to complete pom xml
2.0.1
- fix not all dependencies being added
- enhanced template structure