Skip to content

Commit

Permalink
reorder maven artifacts
Browse files Browse the repository at this point in the history
  • Loading branch information
mshima committed Mar 18, 2024
1 parent 790909c commit 6084079
Showing 1 changed file with 24 additions and 5 deletions.
29 changes: 24 additions & 5 deletions generators/maven/support/pom-store.ts
Original file line number Diff line number Diff line change
Expand Up @@ -188,6 +188,25 @@ const ensureChild = (current: any, ...childPath) => {
return current;
};

const reorderArtifact = <Artifact extends MavenArtifact = MavenArtifact>({
groupId,
artifactId,
inProfile,
version,
...rest
}: Artifact): Artifact => ({ inProfile, groupId, artifactId, version, ...rest }) as Artifact;

const reorderDependency = <Dependency extends MavenDependency = MavenDependency>({
groupId,
artifactId,
inProfile,
version,
type,
scope,
classifier,
...rest
}: Dependency): Dependency => ({ inProfile, groupId, artifactId, version, type, scope, classifier, ...rest }) as Dependency;

export default class PomStorage extends XmlStorage {
constructor({ saveFile, loadFile }: { saveFile: (string) => void; loadFile: () => string }) {
super({ saveFile, loadFile });
Expand All @@ -200,12 +219,12 @@ export default class PomStorage extends XmlStorage {
}

public addDependency({ inProfile, ...dependency }: MavenDependency): void {
this.addDependencyAt(this.getNode({ profile: inProfile }), dependency);
this.addDependencyAt(this.getNode({ profile: inProfile }), reorderDependency(dependency));
this.persist();
}

public addDependencyManagement({ inProfile, ...dependency }: MavenDependency): void {
this.addDependencyAt(this.getNode({ profile: inProfile, nodePath: 'dependencyManagement' }), dependency);
this.addDependencyAt(this.getNode({ profile: inProfile, nodePath: 'dependencyManagement' }), reorderDependency(dependency));
this.persist();
}

Expand Down Expand Up @@ -268,7 +287,7 @@ export default class PomStorage extends XmlStorage {
'configuration.annotationProcessorPaths',
);
const paths = ensureChildIsArray(annotationProcessorPaths, 'path');
appendOrReplace(paths, artifact, artifactEquals);
appendOrReplace(paths, reorderArtifact(artifact), artifactEquals);
this.persist();
}

Expand All @@ -282,12 +301,12 @@ export default class PomStorage extends XmlStorage {

protected addDependencyAt(node, { additionalContent, ...dependency }: MavenDependency) {
const dependencyArray = ensureChildIsArray(node, 'dependencies.dependency');
appendOrReplace(dependencyArray, this.mergeContent(dependency, additionalContent), dependencyEquals);
appendOrReplace(dependencyArray, this.mergeContent(reorderDependency(dependency), additionalContent), dependencyEquals);
}

protected addPluginAt(node, { additionalContent, ...artifact }: MavenPlugin) {
const artifactArray = ensureChildIsArray(node, 'plugins.plugin');
appendOrReplace(artifactArray, this.mergeContent(artifact, additionalContent), artifactEquals);
appendOrReplace(artifactArray, this.mergeContent(reorderArtifact(artifact), additionalContent), artifactEquals);
}

protected addRepositoryAt(node, { releasesEnabled, snapshotsEnabled, ...repository }: MavenRepository): void {
Expand Down

0 comments on commit 6084079

Please sign in to comment.