2222
2323package org .mangorage .mangobotgradle .tasks ;
2424
25+ import com .google .gson .Gson ;
26+ import com .google .gson .GsonBuilder ;
2527import org .gradle .api .Project ;
2628import org .gradle .api .artifacts .ModuleVersionIdentifier ;
2729import org .gradle .api .artifacts .ResolvedDependency ;
2830import org .gradle .api .artifacts .repositories .MavenArtifactRepository ;
2931import org .mangorage .mangobotgradle .MangoBotGradlePlugin ;
3032import org .mangorage .mangobotgradle .core .resolvers .ResolveDependency ;
3133import org .mangorage .mangobotgradle .core .resolvers .Resolver ;
34+ import org .mangorage .mangobotgradle .types .Dependencies ;
35+ import org .mangorage .mangobotgradle .types .Dependency ;
3236
3337import java .io .BufferedWriter ;
3438import java .io .FileWriter ;
4145import java .util .function .Predicate ;
4246
4347public class DatagenTask {
48+ private static final Gson GSON = new GsonBuilder ().setPrettyPrinting ().create ();
49+
4450 private static final List <String > mavenRepositories = List .of (
4551 "https://repo.maven.apache.org/maven2/" ,
4652 "https://repo1.maven.org/maven2/"
@@ -89,7 +95,7 @@ public static ResolveDependency resolve(ResolveDependency preDep) {
8995 }
9096
9197
92- public static void getTransitiveDep (List <String > repos , ResolvedDependency dependency , Predicate <ModuleVersionIdentifier > checker , ArrayList <String > deps , ArrayList <ModuleVersionIdentifier > identifiers , ArrayList <String > urls ) {
98+ public static void getTransitiveDep (List <String > repos , ResolvedDependency dependency , Predicate <ModuleVersionIdentifier > checker , ArrayList <String > deps , ArrayList <ModuleVersionIdentifier > identifiers , ArrayList <Dependency > urls ) {
9399 var dep = dependency .getModule ().getId ();
94100 String id = dep .toString ();
95101
@@ -108,7 +114,15 @@ public static void getTransitiveDep(List<String> repos, ResolvedDependency depen
108114 var result = generate (repos , path );
109115
110116 if (result != null ) {
111- urls .add ("%s %s %s %s %s-%s.jar" .formatted (result , resolved .groupID (), resolved .nameID (), resolved .versionID (), resolved .nameID2 (), resolved .versionID2 ()));
117+ urls .add (
118+ new Dependency (
119+ result ,
120+ resolved .groupID (),
121+ resolved .nameID (),
122+ resolved .versionID (),
123+ "%s-%s.jar" .formatted (resolved .nameID2 (), resolved .versionID2 ())
124+ )
125+ );
112126 }
113127 }
114128
@@ -143,7 +157,7 @@ public static void apply(Project project, MangoBotGradlePlugin gradleUtilsPlugin
143157 var repos = getAllRepositories (project );
144158 var deps = new ArrayList <String >();
145159 var idents = new ArrayList <ModuleVersionIdentifier >();
146- var urls = new ArrayList <String >();
160+ var urls = new ArrayList <Dependency >();
147161
148162 var conf = project .getConfigurations ().getByName ("library" );
149163
@@ -156,7 +170,7 @@ public static void apply(Project project, MangoBotGradlePlugin gradleUtilsPlugin
156170 System .out .printf ("%s dependencies%n" , deps .size ());
157171
158172 var projectRootDir = project .getProjectDir ().toPath ();
159- var depsFile = projectRootDir .resolve ("src/main/resources/installerdata/deps .txt" ).toFile ();
173+ var depsFile = projectRootDir .resolve ("src/main/resources/installer-data/dependencies .txt" ).toFile ();
160174
161175
162176 try {
@@ -167,13 +181,7 @@ public static void apply(Project project, MangoBotGradlePlugin gradleUtilsPlugin
167181 }
168182
169183 try (BufferedWriter writer = new BufferedWriter (new FileWriter (depsFile ))) {
170- urls .forEach (a -> {
171- try {
172- writer .write (a + "\n " );
173- } catch (IOException e ) {
174- throw new RuntimeException (e );
175- }
176- });
184+ writer .write (GSON .toJson (new Dependencies (urls )));
177185 writer .close ();
178186 System .out .println ("Dependencies have been generated to: " + depsFile );
179187 } catch (IOException e ) {
0 commit comments