作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个 gradle 构建脚本,目前只需通过它的主要方法执行一个 Java 类即可工作。我想知道的是,我怎样才能在同一个类中调用静态方法而不必通过 main 方法。目前的gradle代码如下:
import org.apache.tools.ant.taskdefs.condition.Os
apply plugin: 'java'
defaultTasks 'runSimple'
project.ext.set("artifactId", "test-java")
File rootDir = project.getProjectDir()
File targetDir = file("${rootDir}/target")
FileCollection javaClasspath = files("${targetDir}/tools.jar")
task(runSimple, dependsOn: 'classes', type: JavaExec) {
main = 'com.test.model.JavaTest'
classpath = javaClasspath
args 'arg1'
args 'arg2'
}
我的 Java 类如下:
package com.test.model;
public class JavaTest {
public static void main(String[] args) throws Exception {
System.out.println("In main");
anotherMethod(args[0], args[1]);
}
public static void anotherMethod(String arg1, String arg2) {
System.out.println("In anotherMethod");
System.out.println(arg1 + " " + arg2);
}
}
这给了我输出:
:compileJava UP-TO-DATE
:processResources UP-TO-DATE
:classes UP-TO-DATE
:runSimple
In main
In anotherMethod
arg1 arg2
BUILD SUCCESSFUL
Total time: 2.344 secs
我的问题很简单,我怎样才能跳过主要方法,直接从 gradle 脚本调用方法“anotherMethod”?输出将只是:
In anotherMethod
arg1 arg2
谢谢
最佳答案
您必须将 jar 或类添加到类路径中。这是一个包含该类的 jar 文件的示例。在文件 build.gradle 中添加依赖项。我的 jar 文件在 lib
文件夹中,路径是 lib/MQMonitor.jar
。
import mypackage.MyClass
buildscript {
repositories {
flatDir name: 'localRepository', dirs: 'lib'
}
dependencies {
classpath name: 'MQMonitor'
}
}
task myTaskCallJava << {
MyClass.foo()
}
关于java - 如何从 Gradle 调用静态 Java 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17590581/
我是一名优秀的程序员,十分优秀!