1- import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper
1+ import com.fasterxml.jackson.databind.SerializationFeature
2+ import com.fasterxml.jackson.module.kotlin.jacksonMapperBuilder
23import com.github.jk1.license.filter.ExcludeTransitiveDependenciesFilter
34import com.github.jk1.license.render.JsonReportRenderer
45import com.jetbrains.plugin.structure.toolbox.ToolboxMeta
@@ -66,6 +67,7 @@ dependencies {
6667
6768val extension = ExtensionJson (
6869 id = properties(" group" ),
70+
6971 version = properties(" version" ),
7072 meta = ExtensionJsonMeta (
7173 name = " Coder Toolbox" ,
@@ -106,36 +108,30 @@ tasks.test {
106108 useJUnitPlatform()
107109}
108110
111+
109112tasks.jar {
110113 archiveBaseName.set(extension.id)
111114 dependsOn(extensionJson)
112- }
113-
114- val assemblePlugin by tasks.registering(Jar ::class ) {
115- archiveBaseName.set(extension.id)
116- from(sourceSets.main.get().output)
115+ from(extensionJson.get().outputs)
117116}
118117
119118val copyPlugin by tasks.creating(Sync ::class .java) {
120- dependsOn(tasks.assemble)
121- // fromCompileDependencies()
122- from(tasks.jar)
123-
124- from(extensionJsonFile)
119+ dependsOn(tasks.jar)
120+ dependsOn(tasks.getByName(" generateLicenseReport" ))
125121
126- from(" src/main/resources" ) {
127- include(" dependencies.json" )
128- include(" icon.svg" )
129- }
122+ fromCompileDependencies()
130123 into(getPluginInstallDir())
131124}
132125
133126fun CopySpec.fromCompileDependencies () {
134- from(assemblePlugin.get().outputs.files)
127+ from(tasks.jar)
128+ from(extensionJson.get().outputs.files)
135129 from(" src/main/resources" ) {
136- include(" extension.json" )
137130 include(" dependencies.json" )
131+ }
132+ from(" src/main/resources" ) {
138133 include(" icon.svg" )
134+ rename(" icon.svg" , " pluginIcon.svg" )
139135 }
140136
141137 // Copy dependencies, excluding those provided by Toolbox.
@@ -148,28 +144,20 @@ fun CopySpec.fromCompileDependencies() {
148144 " core-api" ,
149145 " ui-api" ,
150146 " annotations" ,
147+ " localization-api"
151148 ).any { file.name.contains(it) }
152149 }
153150 },
154151 )
155152}
156153
157154val pluginZip by tasks.creating(Zip ::class ) {
158- dependsOn(tasks.assemble)
155+ archiveBaseName.set(properties(" name" ))
156+ dependsOn(tasks.jar)
159157 dependsOn(tasks.getByName(" generateLicenseReport" ))
160158
161- // fromCompileDependencies()
162- // into(pluginId)
163- from(tasks.assemble.get().outputs.files)
164- from(extensionJsonFile)
165- from(" src/main/resources" ) {
166- include(" dependencies.json" )
167- }
168- from(" src/main/resources" ) {
169- include(" icon.svg" )
170- rename(" icon.svg" , " pluginIcon.svg" )
171- }
172- archiveBaseName.set(extension.id)
159+ fromCompileDependencies()
160+ into(extension.id) // folder like com.coder.toolbox
173161}
174162
175163tasks.register(" cleanAll" , Delete ::class .java) {
@@ -247,8 +235,12 @@ fun generateExtensionJson(extensionJson: ExtensionJson, destinationFile: Path) {
247235 url = extensionJson.meta.url,
248236 )
249237 )
250- val extensionJson = jacksonObjectMapper().writeValueAsString(descriptor)
251238 destinationFile.parent.createDirectories()
252- destinationFile.writeText(extensionJson)
239+ destinationFile.writeText(
240+ jacksonMapperBuilder()
241+ .enable(SerializationFeature .INDENT_OUTPUT )
242+ .build()
243+ .writeValueAsString(descriptor)
244+ )
253245}
254246// endregion
0 commit comments