在Gradle插件中运行ant.java
我正在创建自己的gradle插件 在MyRunTask中,它扩展了DefaultTask 我正在写这样的东西在Gradle插件中运行ant.java,gradle,Gradle,我正在创建自己的gradle插件 在MyRunTask中,它扩展了DefaultTask 我正在写这样的东西 @TaskAction public void run() { ant.java { main = 'org.mylang.runtime.main.Main' classpath = project.configurations.runtime args = [ project.mylang.mainMy
@TaskAction
public void run() {
ant.java {
main = 'org.mylang.runtime.main.Main'
classpath = project.configurations.runtime
args = [
project.mylang.mainMylangClass
]
classpath jar.archivePath
}
}
run与Jar任务链接,因此我可以在运行程序时直接使用Jar。出于这个原因,我喜欢将Jar舔到我的ant.java
classpath jar.archivePath
时,它说的jar
没有初始化我建议使用Gradle的
project.javaexec
而不是Ant的project.Ant.java
。您的任务类不应该硬编码project.jar.archivePath
,而应该接受类型为Iterable
的属性classpath
,该属性从外部(通过插件或构建脚本)配置为jar.archivePath
。如果您的任务类所做的一切都是执行<代码> Proj.javaExcel < /C>,请考虑使用由插件或构建脚本配置的规则<代码> javaExc>/COD>任务。>“应该接受一个类型的属性类路径,它是用JAR.AcviPePATH从外部配置的”,这会自动发生吗?不使用jar.archivePath?不,您必须在自定义插件或构建脚本中执行此操作。关键是任务类不应该知道构建模型。否则,它们的耦合太紧密,无法重用。