MLP*_*CiM 12 java android gradle android-studio
我目前的项目由两个模块组成,一个是android,另一个可以作为独立的桌面java使用.我想自己运行第二个模块,并且无需通过设备即可调试它.我不想让一个辅助IntelliJ安装在一个或另一个之间进行交换.
在AS中有没有办法将调试器附加到java gradle任务?
apply plugin: "java"
sourceCompatibility = 1.6
sourceSets.main.java.srcDirs = [ "src/" ]
project.ext.mainClassName = "com.project.Desktop.Launcher"
project.ext.assetsDir = new File("../android/assets");
task run(dependsOn: classes, type: JavaExec) {
main = project.mainClassName
classpath = sourceSets.main.runtimeClasspath
standardInput = System.in
workingDir = project.assetsDir
ignoreExitValue = true
}
task dist(type: Jar) {
from files(sourceSets.main.output.classesDir)
from files(sourceSets.main.output.resourcesDir)
from {configurations.compile.collect {zipTree(it)}}
from files(project.assetsDir);
manifest {
attributes 'Main-Class': project.mainClassName
}
}
dist.dependsOn classes
eclipse {
project {
name = appName + "-desktop"
linkedResource name: 'assets', type: '2', location: 'PARENT-1-PROJECT_LOC/android/assets'
}
}
task afterEclipseImport(description: "Post processing after project generation", group: "IDE") {
doLast {
def classpath = new XmlParser().parse(file(".classpath"))
new Node(classpath, "classpathentry", [ kind: 'src', path: 'assets' ]);
def writer = new FileWriter(file(".classpath"))
def printer = new XmlNodePrinter(new PrintWriter(writer))
printer.setPreserveWhitespace(true)
printer.print(classpath)
}
}
Run Code Online (Sandbox Code Playgroud)
http://www.gradle.org/docs/current/userguide/application_plugin.html
然后,您可以通过运行gradle run来运行该应用程序.Gradle将负责构建应用程序类及其运行时依赖项,并使用正确的类路径启动应用程序.您可以使用gradle run --debug-jvm以调试模式启动应用程序(请参阅JavaExec.setDebug()).
添加到build.gradle
apply plugin:'application'
mainClassName = 'my.company.namespace.MainClass'
Run Code Online (Sandbox Code Playgroud)
创建一个新的运行/调试Gradle配置
- 跑
- 编辑配置
- "+"(添加)
- 摇篮
或者你也可以单独[运行]并复制任务.
- 用于任务使用
run --debug-jvm- 将其重命名为[debug]
然后根据IntelliJ的指示附加调试器:
- 跑
- 编辑配置
- "+"(添加)
- 远程
- 重命名为"附加调试器"
- (可选)在启动之前,添加另一个配置并添加[debug]
现在您可以启动[debug],然后启动Attach Debugger,或者如果您按照步骤6,只需按一下Stop Debugger按钮就Listening for transport dt_socket at address: 5005 message可以将其视为入口点.
| 归档时间: |
|
| 查看次数: |
3607 次 |
| 最近记录: |