如何使用gradle任务运行阴影罐?

时间:2019-03-16 16:18:27

标签: java gradle intellij-idea kotlin shadowjar

我希望在使用影子罐插件构建应用后运行我的应用。

build.gradle:

plugins {
    id 'java'
    id "org.jetbrains.kotlin.jvm" version "1.3.21"
    id "com.github.johnrengelman.shadow" version "5.0.0"
}

group 'org.example.java'
version '1.0-SNAPSHOT'

sourceCompatibility = 1.8
compileKotlin {
    kotlinOptions.jvmTarget = "1.8"
}

repositories {
    jcenter()
}

dependencies {
    compile "io.ktor:ktor-server-netty:1.1.3"
}

我还有一个全局的init.gradle:

gradle.projectsLoaded {
    rootProject.allprojects {
        buildDir = "/Users/User/Builds/${rootProject.name}/${project.name}"
    }
}

因此,现在可以使用shadowJar任务将胖罐子构建到我的全局构建目录中。但是我希望能够仅使用IntelliJ中的一种运行配置来运行和构建它。我该怎么办?

也许还有另一种方法可以让gradle将我的所有输出重定向到全局构建目录。我不想手动为每个IntelliJ项目配置相同的输出路径。欢迎提出建议。

谢谢:)

1 个答案:

答案 0 :(得分:1)

您不应触摸<!DOCTYPE html> <html> <head></head> <body> <input type='text' id='input' /> <input type='button' value='add to list' id='add' /> <ul id='list'> <li> <b>Topics</b></li> </ul> <h3> <!--- <button id="sum">0 </button> ---> <button onclick="reply_click(this.id)">Click Here To See The Sum</button> <script type="text/javascript"> function reply_click(clicked_id) { alert(clicked_id); } </script> </h3> </body> <script> var sum = 0; document.getElementById("add").onclick = function() { var text = document.getElementById("input").value; var li = document.createElement("li"); li.innerText = text; sum += parseInt(text); document.getElementById("list").appendChild(li); document.getElementById("sum").innerHTML = sum; } function sumvar() { alert("The sum of your numbers are "); } </script> </html>属性来实现所需的功能。

相反,您应该创建一个buildDir任务,该任务将从影子jar启动应用程序。 如果您希望执行的位置与生成的jar的默认位置不同,则应更改影子任务本身的输出,而仅那个输出或使执行任务依赖于复制任务,可以移动影子罐。

类似的东西:

JavaExec