c# - Gradle插件返回错误消息
问题描述
我创建了一个自定义 gradle 插件 -TaskConfigPlugin
Gradle Version: 1.12/2.0
(由于组织限制,目前无法升级)
Java Version: 1.8
我的插件代码如下- TaskConfigPlugin.java
>>
public class TaskConfigPlugin implements Plugin<Project> {
private String taskPrefix;
private Task mainTask;
@Override
public void apply(Project project) {
TaskConfigPluginExtension extension = project.getExtensions()
.create("taskOrder", TaskConfigPluginExtension.class);
this.taskPrefix = extension.getTaskPrefix(); //the taskPrefix fetched is null
this.mainTask = extension.getMainTask(); //mainTask fetched is null
configureTaskOrdering(project);
}
private void configureTaskOrdering(Project project){
// My Logic to order the task using 'dependsOn', 'mustRunAfter' etc
// It uses the 'taskPrefix' to fetch all matching tasks and then
// establish the relationship with the 'mainTask'
}
}
扩展对象 - TaskConfigPluginExtension.java
>>
public class TaskConfigPluginExtension {
private String taskPrefix;
private Task mainTask;
// getters and setters for the above
}
我在其中添加了插件信息,META-INF/gradle-plugins/TaskConfigPlugin.properties
其中包含插件的完整包名。
该插件在我的 gradle 中的使用方式如下 -mainConsumer.gradle
buildscript {
repositories {
flatDir name: 'libs', dirs: 'lib/'
}
dependencies {
classpath ':TaskConfigPlugin:1.0'
}
}
apply plugin: 'TaskConfigPlugin'
task mainConsumer
taskOrder {
taskPrefix = 'setup'
mainTask = mainConsumer
}
现在,当我运行我的消费 gradle 时mainConsumer.gradle
,我看到获取的taskPrefix
andmainTask
值是 NULL。我知道它们属于CONFIGURATION
阶段,因此无法提前获取值。但是我尝试了该project.afterEvaluate
选项,但这也不适合我。
有一些解决方案(希望它们有效),Provider
但Property
我不能使用它们,因为它们已经引入了更高的 gradle 版本,我猜4.+
那么,我是否有一些解决方案或解决方法gradle 1.12
来获取CONFIGURATION
阶段本身的扩展值?
感谢您的回复。提前致谢。
解决方案
推荐阅读
- c++ - 如何解决eclipse中cplex的目录问题?
- sql - 如何为需要连接的特定行插入值
- c - Getopt错误:内存保护违规
- python - Pygame如何在数组中找到最近的精灵并锁定它?
- arrays - 如何将数组中的多个值与其他数组中的某个名称进行关联
- java - 检查列表中的所有项目是否设置为相同的布尔值
- windows - 批处理脚本移动文件并重命名源文件(如果它存在于目标文件夹中)
- qt - 向某些应用程序发送 WM_INPUTLANGCHANGEREQUEST 会使它们挂起
- azure - 将最新文件从 S3 复制到 Azure Blob(使用 Azure Factory V2)
- ansible - set_fact 创建一个包含项目的列表