Coder Social home page Coder Social logo

rambuild's Introduction

Work In Progress [And only working on Mac so far]

The state of this plugin is so much in ple-alpha that it has the potential to open a gap in the space-time continuum, or at the very least it could mess up your computer or project. Use at your own risk. Also, Windows and Linux support will come in the future.

ramBuild

A small plugin to make builds in gradle run on ram instead of the hard drive

Install

If you are using Gradle 2.1 or higher you can use the new syntax:

plugins {
  id "com.pablisco.gradle.rambuild" version "0.1"
}

Otherwise you can add ramBuild to your build on the traditional way:

buildscript {
  repositories {
    maven {
      url "https://plugins.gradle.org/m2/"
    }
  }
  dependencies {
    classpath "gradle.plugin.com.pablisco.gradle:plugin:+" // <- change for latest version
  }
}

apply plugin: "com.pablisco.gradle.rambuild"

And that's it, now you are running your build from ram. It's recommended to do this on the root project to avoid conflicts.

Customise

It's possible to change how the plugin works, like this on you gradle script:

ramBuild {
    size = "1g" // This is used to determine the size of the drive (standard {k|m|g} pattern for KB, MB and GB)
    name = "unicorn" // This is the name used when the drive is mounted
}

Why do I need this?

Given you have a generous amount of ram (higher than 4GB) this can help gradle run about 30% faster (comparing SATA SSD to ddr3). But more importantly, this allows your ssd drive to receive less pounding from the compiler. Given that a typical project has thousands of files on top of dependencies, we are looking at a large pile of tiny files that get copied and moved around like there is no tomorrow.

rambuild's People

Contributors

pablisco avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rambuild's Issues

Issues with Retrolambda?

Our project is not building ๐Ÿ˜ข

Running ./gradlew assembleDebug --debug launches this log. Hope it helps! By the way, @pablisco nice work there! ๐ŸŽ‰

16:47:12.645 [INFO] [system.out] Error! Failed to transform some classes
16:47:12.646 [INFO] [system.out] java.lang.RuntimeException: java.lang.ClassNotFoundException: com.scm.fotocasa.common.presenter.FotocasaPresenter
16:47:12.647 [INFO] [system.out]        at net.orfjackal.retrolambda.lambdas.BackportLambdaInvocations.loadClass(BackportLambdaInvocations.java:129)
16:47:12.647 [INFO] [system.out]        at net.orfjackal.retrolambda.lambdas.BackportLambdaInvocations.access$100(BackportLambdaInvocations.java:16)
16:47:12.647 [INFO] [system.out]        at net.orfjackal.retrolambda.lambdas.BackportLambdaInvocations$InvokeDynamicInsnConverter.backportLambda(BackportLambdaInvocations.java:114)
16:47:12.647 [INFO] [system.out]        at net.orfjackal.retrolambda.lambdas.BackportLambdaInvocations$InvokeDynamicInsnConverter.visitInvokeDynamicInsn(BackportLambdaInvocations.java:107)
16:47:12.647 [INFO] [system.out]        at net.orfjackal.retrolambda.asm.ClassReader.readCode(ClassReader.java:1452)
16:47:12.647 [INFO] [system.out]        at net.orfjackal.retrolambda.asm.ClassReader.readMethod(ClassReader.java:1017)
16:47:12.647 [INFO] [system.out]        at net.orfjackal.retrolambda.asm.ClassReader.accept(ClassReader.java:693)
16:47:12.647 [INFO] [system.out]        at net.orfjackal.retrolambda.asm.ClassReader.accept(ClassReader.java:506)
16:47:12.647 [INFO] [system.out]        at net.orfjackal.retrolambda.Transformers.lambda$transform$4(Transformers.java:106)
16:47:12.648 [INFO] [system.out]        at net.orfjackal.retrolambda.Transformers.transform(Transformers.java:121)
16:47:12.648 [INFO] [system.out]        at net.orfjackal.retrolambda.Transformers.transform(Transformers.java:106)
16:47:12.648 [INFO] [system.out]        at net.orfjackal.retrolambda.Transformers.backportClass(Transformers.java:46)
16:47:12.648 [INFO] [system.out]        at net.orfjackal.retrolambda.Retrolambda.run(Retrolambda.java:77)
16:47:12.648 [INFO] [system.out]        at net.orfjackal.retrolambda.Main.main(Main.java:26)
16:47:12.648 [INFO] [system.out] Caused by: java.lang.ClassNotFoundException: com.scm.fotocasa.common.presenter.FotocasaPresenter
16:47:12.648 [INFO] [system.out]        at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
16:47:12.648 [INFO] [system.out]        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
16:47:12.648 [INFO] [system.out]        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
16:47:12.648 [INFO] [system.out]        at net.orfjackal.retrolambda.NonDelegatingClassLoader.loadClass(NonDelegatingClassLoader.java:27)
16:47:12.648 [INFO] [system.out]        at net.orfjackal.retrolambda.lambdas.BackportLambdaInvocations.loadClass(BackportLambdaInvocations.java:127)
16:47:12.648 [INFO] [system.out]        ... 13 more
16:47:12.667 [DEBUG] [org.gradle.process.internal.DefaultExecHandle] Changing state to: FAILED
16:47:12.668 [DEBUG] [org.gradle.process.internal.DefaultExecHandle] Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home/bin/java'' finished with exit value 1 (state: FAILED)
16:47:12.668 [DEBUG] [org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter] Removed task artifact state for {} from context.
16:47:12.668 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter] Finished executing task ':fotocasacommon:compileRetrolambdaDebug'
16:47:12.668 [LIFECYCLE] [class org.gradle.internal.buildevents.TaskExecutionLogger] :fotocasacommon:compileRetrolambdaDebug FAILED
16:47:12.669 [INFO] [org.gradle.execution.taskgraph.AbstractTaskPlanExecutor] :fotocasacommon:compileRetrolambdaDebug (Thread[Daemon worker Thread 3,5,main]) completed. Took 0.896 secs.
16:47:12.669 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationWorkerRegistry] Worker root.177 completed (0 in use)
16:47:12.669 [DEBUG] [org.gradle.execution.taskgraph.AbstractTaskPlanExecutor] Task worker [Thread[Daemon worker Thread 3,5,main]] finished, busy: 1.45 secs, idle: 0.06 secs
16:47:12.670 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] 
16:47:12.670 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] FAILURE: Build failed with an exception.
16:47:12.670 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] 
16:47:12.670 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] * What went wrong:
16:47:12.670 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] Execution failed for task ':fotocasacommon:compileRetrolambdaDebug'.
16:47:12.670 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] > Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1
16:47:12.670 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] 
16:47:12.670 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] * Try:
16:47:12.670 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] Run with --stacktrace option to get the stack trace. 
16:47:12.670 [LIFECYCLE] [org.gradle.internal.buildevents.BuildResultLogger] 
16:47:12.670 [LIFECYCLE] [org.gradle.internal.buildevents.BuildResultLogger] BUILD FAILED
16:47:12.670 [LIFECYCLE] [org.gradle.internal.buildevents.BuildResultLogger] 
16:47:12.670 [LIFECYCLE] [org.gradle.internal.buildevents.BuildResultLogger] Total time: 9.611 secs

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.