Не может готовый текст файла внутри build.gradle.kts - PullRequest
0 голосов
/ 12 марта 2020

Я пытаюсь напечатать класс kotlin перед его компиляцией для создания другого класса. Я перепробовал много способов, чтобы быть уверенным в печати текста файла перед его компиляцией через File.readText(), но ничто не помогало всегда печатать код, объединенный с символами, как на следующем скриншоте.

enter image description here

Мой код Gradle

tasks.findByName("compileKotlin")
    ?.dependsOn(tasks.register("compileKotlin2") {
        doFirst {
            var names2 = "filesPath= "
            fileTree("$buildDir\\classes\\kotlin\\main\\tech\\example\\ecommerce\\ecommerce\\controller\\")
                    .visit {
                        if (this.file.name != "WebPagesController.class") {
                            names2 += this.file.path + "\n"

                            println(file(this.file.path).readText())
                        }
                    }
            println(names2)
        }
    })

Полный build.gradle.kts

import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

plugins {
    kotlin("plugin.jpa") version "1.3.61"
    id("org.springframework.boot") version "2.2.5.RELEASE"
    id("io.spring.dependency-management") version "1.0.9.RELEASE"
    kotlin("jvm") version "1.3.61"
    kotlin("plugin.spring") version "1.3.61"
}

group = "tech.example.ecommerce"
version = "0.0.1-SNAPSHOT"
java.sourceCompatibility = JavaVersion.VERSION_1_8

repositories {
    mavenCentral()
}

dependencies {

    // springframework
    implementation("org.springframework.boot:spring-boot-starter-web")
    implementation("org.springframework.boot:spring-boot-starter-thymeleaf")
    implementation("org.springframework.boot:spring-boot-starter-mail")
    implementation("org.springframework.boot:spring-boot-starter-data-jpa")
    implementation("mysql:mysql-connector-java")

    // kotlin
    implementation("org.jetbrains.kotlin:kotlin-reflect")
    implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")

    // testing
    testImplementation("org.springframework.boot:spring-boot-starter-test") {
        exclude(group = "org.junit.vintage", module = "junit-vintage-engine")
    }
}
tasks.findByName("compileKotlin")
        ?.dependsOn(tasks.register("compileKotlin2") {
            doFirst {
                println("hiiiiiiiii")
                var names2 = "a= "
                fileTree("$buildDir\\classes\\kotlin\\main\\tech\\example\\ecommerce\\ecommerce\\controller\\")
                        .visit {
                            if (this.file.name != "WebPagesController.class") {
                                names2 += this.file.path + "\n"

                                println(file(this.file.path).readText())
                            }
                        }
                println(names2)
            }
        })


tasks.withType<Test> {
    useJUnitPlatform()
}

tasks.withType<KotlinCompile> {
    kotlinOptions {
        freeCompilerArgs = listOf("-Xjsr305=strict")
        jvmTarget = "1.8"
    }
}

Любые советы приветствуются, Заранее спасибо

1 Ответ

0 голосов
/ 13 марта 2020

In fileTree("$buildDir\\classes\\kotlin\\main\\tech\\example\\ecommerce\\ecommerce\\controller\\") с использованием projectDir вместо buildDir с синтаксисом fileTree("$projectDir/src/main/kotlin/tech/example/ecommerce/ecommerce/controller") s

...