Sha*_*mog 5 java gradle codenameone build.gradle
我正在尝试移植Codename One客户端构建,这是非常自定义的ant脚本,可以使用gradle.当您在模拟器上运行Codename One应用程序时,您没有运行应用程序主类,而是类似于:
java -classpath CodenameOneJarList com.codename1.impl.javase.Simulator nameOfTheMainClassForTheApp
Run Code Online (Sandbox Code Playgroud)
为了在gradle中执行此操作,我编辑了基本构建脚本,如下所示:
apply plugin: 'java'
apply plugin: 'application'
mainClassName = "com.codename1.impl.javase.Simulator"
// for netbeans
ext.mainClass = 'com.codename1.impl.javase.Simulator'
Run Code Online (Sandbox Code Playgroud)
然后在底部我做了这个:
run {
args 'com.mycompany.myapp.Main'
}
Run Code Online (Sandbox Code Playgroud)
这按预期工作,并在IDE(NetBeans)中按下运行时启动了模拟器.我不确定这是否是"正确的事",如果它可以在其他IDE中使用.
然后,当我尝试在调试器中启动时,由于我猜测run目标未被调用,因此没有传递参数?
我试过这样做:
debug {
args 'com.mycompany.myapp.Main'
}
Run Code Online (Sandbox Code Playgroud)
哪个明显失败了.我不确定将参数传递给调试器的位置?
这是通过gradle标准化的吗?
关于争论的传递,我是否正确的方向?
"运行"声明性语法映射到什么?如何找到其他潜在的声明性块类型?
不幸的是谷歌搜索运行/调试等基础知识不会产生有用的东西.
build.gradle 中的部分run是从您应用的插件添加到项目中的 DSL application。这是更多信息这是有关该插件的正如您所注意到的,应用程序插件实际上是为了生成可运行的 jar、分发和执行它而设计的,而不是用于调试,并且不支持调试。
要从 Gradle 启动 java 进程,您可以使用任务JavaExec以及使用该args字段的任意 JVM 参数,包括但不限于调试选项。
你可以这样做:
task runApp(type: JavaExec) {
classpath = sourceSets.main.runtimeClasspath
main = 'package.Main' //class to run
// add debug arguments as required, for example:
args '-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8888,suspend=n'
}
Run Code Online (Sandbox Code Playgroud)
运行gradle runApp以在调试模式下启动您的应用程序,然后连接您的 IDE。由于对 Netbeans 不够熟悉,我无法评论如何将 Netbeans 附加到调试 java 进程。
| 归档时间: |
|
| 查看次数: |
602 次 |
| 最近记录: |