gradle - 使用Gradle中的参数运行可执行jar

标签 gradle

我希望从我的gradle文件运行可执行jar。我绑:

task runJar(dependsOn:jar) << {
javaexec {
    main="-jar"; args "C:/Development/AndroidStudioProjects/AndroidDev/Test.jar"
  }
}

但是我收到“在项目':MyProj上找不到属性'jar'”

我也尝试过:
task runScheduleReader << {
javaexec {
    main = "MainClass"
    classpath = "C:/Development/AndroidStudioProjects/AndroidDev/Test.jar"
    args('1')
  }
}

我对groovy比较陌生,请您帮我一下吗?
附言:我将这些功能放在android {}之外

最佳答案

在任务声明的第一个代码段dependsOn中,该任务runJar应该仅在jar任务之后执行。说,您得到的异常(exception)是您当前的项目没有这样的任务。因此,如果您真的不需要紧接在前执行jar任务,则可以简单地不依赖于此任务依赖项:

task runJar() << {
    javaexec {
        main="-jar"; args "C:/Development/AndroidStudioProjects/AndroidDev/Test.jar"
    }
}

但是,这有点奇怪,当您必须执行一些没有相对路径的jar时,此解决方案应该可以工作。

第二个片段也应该将jar作为参数传递,但是这次,它应该是一个参数数组,如下所示:
task runScheduleReader() << {
  javaexec { 
    main="-jar";
    args = [
            "C:/Development/AndroidStudioProjects/AndroidDev/Test.jar",
            "1"
           ]
  } 
}

关于gradle - 使用Gradle中的参数运行可执行jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37924638/

相关文章:

java - 如何使用配置文件运行 gradle?重复 key : spring

dependencies - 指定构建顺序依赖项

android - gradle:根据构建类型(或变体)执行代码

android - 使用android studio创建自定义测试文件夹

android - 无法获取提供程序 com.crashlytics.android.CrashlyticsInitProvider

android - 如何更新build.gradle

maven - 将 Android 库上传到 Bintray - userOrg 参数被忽略

android - Gradle脚本-在file.delete()之前完成等待操作

java - 如何将一个 Gradle 脚本导入另一个?

java - Eclipse构建会覆盖JDK版本首选项