1616
1717package org .moe .gradle .tasks ;
1818
19+ import org .gradle .api .Action ;
1920import org .gradle .api .Project ;
2021import org .gradle .api .Rule ;
2122import org .gradle .api .file .CopySpec ;
@@ -96,28 +97,28 @@ private static Jar create(@NotNull MoePlugin plugin, @NotNull SourceSet sourceSe
9697 final ProGuard proguardTask = plugin .getTaskBy (ProGuard .class , sourceSet , mode );
9798 resourcePackagerTask .dependsOn (proguardTask );
9899
99- // Update settings
100- resourcePackagerTask .setDestinationDir (project .file (project .getBuildDir ().toPath ().resolve (out ).toFile ()));
101- resourcePackagerTask .setArchiveName ("application.jar" );
102- resourcePackagerTask .from (project .zipTree (proguardTask .getOutJar ()));
103- resourcePackagerTask .exclude ("**/*.class" );
100+ Action <Project > configureTask = _project -> {
101+ // Update settings
102+ resourcePackagerTask .setDestinationDir (project .file (project .getBuildDir ().toPath ().resolve (out ).toFile ()));
103+ resourcePackagerTask .setArchiveName ("application.jar" );
104+ resourcePackagerTask .from (project .zipTree (proguardTask .getOutJar ()));
105+ resourcePackagerTask .exclude ("**/*.class" );
104106
105- project .afterEvaluate (_project -> {
106107 // When using full trim, ProGuard will copy the the resources from the common jar
107108 switch (ext .proguard .getLevelRaw ()) {
108- case ProGuardOptions .LEVEL_APP :
109- resourcePackagerTask .from (_project .zipTree (sdk .getCoreJar ()));
110- if (ext .getPlatformJar () != null ){
111- resourcePackagerTask .from (_project .zipTree (ext .getPlatformJar ()));
112- }
113- break ;
114- case ProGuardOptions .LEVEL_PLATFORM :
115- resourcePackagerTask .from (_project .zipTree (sdk .getCoreJar ()));
116- break ;
117- case ProGuardOptions .LEVEL_ALL :
118- break ;
119- default :
120- throw new IllegalStateException ();
109+ case ProGuardOptions .LEVEL_APP :
110+ resourcePackagerTask .from (_project .zipTree (sdk .getCoreJar ()));
111+ if (ext .getPlatformJar () != null ) {
112+ resourcePackagerTask .from (_project .zipTree (ext .getPlatformJar ()));
113+ }
114+ break ;
115+ case ProGuardOptions .LEVEL_PLATFORM :
116+ resourcePackagerTask .from (_project .zipTree (sdk .getCoreJar ()));
117+ break ;
118+ case ProGuardOptions .LEVEL_ALL :
119+ break ;
120+ default :
121+ throw new IllegalStateException ();
121122 }
122123
123124 ext .packaging .getExcludes ().forEach (resourcePackagerTask ::exclude );
@@ -128,7 +129,14 @@ private static Jar create(@NotNull MoePlugin plugin, @NotNull SourceSet sourceSe
128129 SourceSet main = plugin .getJavaConvention ().getSourceSets ().getByName (SourceSet .MAIN_SOURCE_SET_NAME );
129130 addResourceFromSources (ext , resourcePackagerTask , main );
130131 }
131- });
132+ };
133+
134+ // Make sure the project is configured after project is evaluated
135+ if (project .getState ().getExecuted ()) {
136+ configureTask .execute (project );
137+ } else {
138+ project .afterEvaluate (configureTask );
139+ }
132140
133141 return resourcePackagerTask ;
134142 }
0 commit comments