mirror of https://github.com/halo-dev/halo
				
				
				
			
		
			
				
	
	
		
			156 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			Groovy
		
	
	
			
		
		
	
	
			156 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			Groovy
		
	
	
import de.undercouch.gradle.tasks.download.Download
 | 
						|
import org.gradle.crypto.checksum.Checksum
 | 
						|
 | 
						|
plugins {
 | 
						|
    id 'org.springframework.boot'
 | 
						|
    id 'io.spring.dependency-management'
 | 
						|
    id "com.gorylenko.gradle-git-properties"
 | 
						|
    id "checkstyle"
 | 
						|
    id 'java'
 | 
						|
    id 'jacoco'
 | 
						|
    id "de.undercouch.download"
 | 
						|
    id "io.freefair.lombok"
 | 
						|
    id 'org.gradle.crypto.checksum'
 | 
						|
    id 'org.springdoc.openapi-gradle-plugin'
 | 
						|
}
 | 
						|
 | 
						|
group = 'run.halo.app'
 | 
						|
compileJava.options.encoding = 'UTF-8'
 | 
						|
compileTestJava.options.encoding = 'UTF-8'
 | 
						|
 | 
						|
java {
 | 
						|
    sourceCompatibility = JavaVersion.VERSION_17
 | 
						|
    targetCompatibility = JavaVersion.VERSION_17
 | 
						|
}
 | 
						|
 | 
						|
checkstyle {
 | 
						|
    toolVersion = "9.3"
 | 
						|
    showViolations = false
 | 
						|
    ignoreFailures = false
 | 
						|
}
 | 
						|
 | 
						|
repositories {
 | 
						|
    mavenCentral()
 | 
						|
 | 
						|
    maven { url 'https://repo.spring.io/milestone' }
 | 
						|
    maven { url 'https://s01.oss.sonatype.org/content/repositories/snapshots' }
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
configurations {
 | 
						|
    compileOnly {
 | 
						|
        extendsFrom annotationProcessor
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
springBoot {
 | 
						|
    buildInfo {
 | 
						|
        properties {
 | 
						|
            artifact = 'halo'
 | 
						|
            name = 'halo'
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
bootJar {
 | 
						|
    archiveBaseName = 'halo'
 | 
						|
    manifest {
 | 
						|
        attributes 'Implementation-Title': 'Halo Application',
 | 
						|
                'Implementation-Vendor': 'Halo OSS Team'
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
tasks.named('jar') {
 | 
						|
    enabled = false
 | 
						|
}
 | 
						|
 | 
						|
dependencies {
 | 
						|
    implementation project(':api')
 | 
						|
 | 
						|
    annotationProcessor "org.springframework.boot:spring-boot-configuration-processor"
 | 
						|
    annotationProcessor "org.springframework:spring-context-indexer"
 | 
						|
 | 
						|
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
 | 
						|
    testImplementation 'org.springframework.security:spring-security-test'
 | 
						|
    testImplementation 'io.projectreactor:reactor-test'
 | 
						|
}
 | 
						|
 | 
						|
tasks.register('createChecksums', Checksum) {
 | 
						|
    dependsOn tasks.named('bootJar')
 | 
						|
    inputFiles.setFrom(layout.buildDirectory.files('libs'))
 | 
						|
    outputDirectory = layout.buildDirectory.dir("libs")
 | 
						|
    checksumAlgorithm = Checksum.Algorithm.SHA256
 | 
						|
}
 | 
						|
 | 
						|
tasks.named('processResources', ProcessResources) {
 | 
						|
    from project(':ui').layout.buildDirectory.dir('dist')
 | 
						|
    into layout.buildDirectory.dir('resources/main')
 | 
						|
    configure {
 | 
						|
        mustRunAfter project(':ui').tasks.named('build')
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
tasks.named('build') {
 | 
						|
    dependsOn tasks.named('createChecksums')
 | 
						|
}
 | 
						|
 | 
						|
tasks.named('test', Test) {
 | 
						|
    useJUnitPlatform()
 | 
						|
    finalizedBy jacocoTestReport
 | 
						|
}
 | 
						|
 | 
						|
tasks.named('jacocoTestReport', JacocoReport) {
 | 
						|
    reports {
 | 
						|
        xml.required = true
 | 
						|
        html.required = false
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
ext.presetPluginUrls = [
 | 
						|
        'https://github.com/halo-dev/plugin-comment-widget/releases/download/v1.9.0/plugin-comment-widget-1.9.0.jar'  : 'plugin-comment-widget.jar',
 | 
						|
        'https://github.com/halo-dev/plugin-search-widget/releases/download/v1.3.1/plugin-search-widget-1.3.1.jar'    : 'plugin-search-widget.jar',
 | 
						|
        'https://github.com/halo-dev/plugin-sitemap/releases/download/v1.1.1/plugin-sitemap-1.1.1.jar'                : 'plugin-sitemap.jar',
 | 
						|
        'https://github.com/halo-dev/plugin-feed/releases/download/v1.2.1/plugin-feed-1.2.1.jar'                      : 'plugin-feed.jar',
 | 
						|
 | 
						|
        // Currently, plugin-app-store is not open source, so we need to download it from the official website.
 | 
						|
        // Please see https://github.com/halo-dev/plugin-app-store/issues/55
 | 
						|
        // https://www.halo.run/store/apps/app-VYJbF
 | 
						|
        'https://www.halo.run/store/apps/app-VYJbF/releases/download/app-release-cWbLS/assets/app-release-cWbLS-fZYSx': 'appstore.jar',
 | 
						|
]
 | 
						|
 | 
						|
tasks.register('downloadPluginPresets', Download) {
 | 
						|
    doFirst {
 | 
						|
        delete 'src/main/resources/presets/plugins'
 | 
						|
    }
 | 
						|
 | 
						|
    src presetPluginUrls.keySet()
 | 
						|
 | 
						|
    dest 'src/main/resources/presets/plugins'
 | 
						|
 | 
						|
    eachFile { f ->
 | 
						|
        f.name = presetPluginUrls[f.sourceURL.toString()]
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
openApi {
 | 
						|
    outputDir = file("$rootDir/api-docs/openapi/v3_0")
 | 
						|
    groupedApiMappings = [
 | 
						|
            'http://localhost:8091/v3/api-docs/all-api': 'aggregated.json',
 | 
						|
    ]
 | 
						|
    customBootRun {
 | 
						|
        args = ['--server.port=8091',
 | 
						|
                '--spring.profiles.active=doc',
 | 
						|
                "--halo.work-dir=${layout.buildDirectory.get()}/tmp/workdir-for-generating-apidocs"]
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
tasks.named('forkedSpringBootRun') {
 | 
						|
    dependsOn ':api:jar'
 | 
						|
}
 | 
						|
 | 
						|
tasks.named('generateOpenApiDocs') {
 | 
						|
    outputs.upToDateWhen {
 | 
						|
        false
 | 
						|
    }
 | 
						|
}
 |