小编Joe*_*dez的帖子

使用Java创建Gradle自定义插件

我正在使用Gradle创建一个构建过程,我想提供一个使用Java代码的插件.Gradle 插件文档 这是可能的:

您可以使用您喜欢的任何语言实现自定义插件,前提是实现最终编译为字节码.对于这里的示例,我们将使用Groovy作为实现语言.如果需要,您可以使用Java或Scala.

但是,经过多个小时的谷歌搜索和阅读,我还没有找到任何解释如何使用Java创建Gradle自定义插件.看起来你可以在以下目录中为它创建代码:

<rootProjectDir>/buildSrc/src/main/java/
  MyGradlePlugin.java
  MyGradleTasks.java 
Run Code Online (Sandbox Code Playgroud)

但问题就变成了:

  1. 如何在Java中实现插件类和任务以与Gradle兼容?
  2. 如何让Gradle识别Java类和任务,以便在构建中使用它们?

    你可以像引用Groovy一样引用插件类吗?

    src/main/resources/META-INF/gradle-plugins/myjavaplugin.properties implementation-class=org.me.MyGradlePlugin

我意识到我可以用project.javaexec或调用Java代码JavaExec,但我担心这会使我的构建过程不那么便携.

java gradle

33
推荐指数
2
解决办法
2万
查看次数

在Android中的VideoView上显示和隐藏播放按钮

我希望能够显示一个按钮来启动视频,在视频播放的同一视图中心(使用VideoView).我也希望按钮在单击后消失,因为我在视频启动后使用MediaController类执行暂停,倒带,快进操作.

我该怎么做呢?

这是我到目前为止的布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  android:id="@+id/LinearLayout1"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:orientation="vertical">

<FrameLayout
  android:id="@+id/video_frame"
  android:layout_width="fill_parent"
  android:layout_height="480px"
  android:background="#000"
  >

  <VideoView
    android:id="@+id/video_view"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    />

</FrameLayout>
Run Code Online (Sandbox Code Playgroud)

我已经尝试以编程方式将ImageButton添加到FrameLayout,但这似乎不起作用.

android android-videoview

10
推荐指数
1
解决办法
2万
查看次数

使用Java定义Gradle插件属性扩展的正确方法吗?

我正在尝试用Java创建具有属性扩展名的Gradle插件(不是约定,因为这显然是旧的错误的方式)。作为记录,我正在Linux机器(Ubuntu 12.04)上使用Gradle 1.6。

我已经弄清楚了这应该在Plugin类定义中完成。这是添加扩展名的一种方法。创建一个包含您的属性的扩展类:

public class MyPluginExtensions {

    File sourceDir;
    File outputDir;

    public MyPluginExtensions(Project project) {
        this.project = project;
        sourceDir = new File(project.getProjectDir(), "src");
        outputDir = new File(project.getBuildDir(), "out");
    }

}
Run Code Online (Sandbox Code Playgroud)

现在,将这些扩展添加到主插件类中的项目中:

public class MyPlugin implements Plugin<Project> {

    @Override
    public void apply(Project project) {

        Map<String,Object> taskInfo = new HashMap<String,Object>();
        taskInfo.put("type", MyPluginTask.class);
        taskInfo.put("description", "Generates blah from blah.");
        taskInfo.put("group", "Blah");
        Task myPluginTask = project.task(taskInfo, "myPluginTask");

        // Define conventions and attach them to tasks
        MyPluginExtensions extensions = new MyPluginExtensions(project); …
Run Code Online (Sandbox Code Playgroud)

java gradle

5
推荐指数
1
解决办法
9426
查看次数

标签 统计

gradle ×2

java ×2

android ×1

android-videoview ×1