Giter Site home page Giter Site logo

cafe's Introduction

MIX

Java project builds in Java.

    Source: http://github.com/bigeasy/mix/tree/master
    Documentation: http://wiki.github.com/bigeasy/mix

    Issues and Tasks: http://bigeasy.lighthouseapp.com/projects/44183-mix

    License: The MIT License

    Dependencies:
        Jav-a-Go-Go:    http://github.com/bigeasy/go-go
        Spawn:          http://github.com/bigeasy/spawn
        Comfort I/O:    http://github.com/bigeasy/comfort-io
        Reflective:     http://github.com/bigeasy/reflective
        Cassandra:      http://github.com/bigeasy/cassandra

    Contact: [email protected]

    See-Also:
        Jav-a-Go-Go     http://github.com/bigeasy/go-go
        Java Cups       http://github.com/bigeasy/cups

PURPOSE

Mix is a command line utility for jar repository management and JVM based
language compilation.

CONTENTS

Sub project branches.

cobertrua - Cobertura tasks.

Checkout a sub project branch:

git clone git://github.com/bigeasy/mix.git mix-cobertura
cd mix-cobertura
git branch --track cobertura origin/cobertura
git checkout cobertura

MOTIVATION

I do not like Ant. Maven is fine, but heavywight and mostly XML.

Mix is a Java tool for building Java and other JVM languages. It has minimal
external dependencies. It strives to be a first-class citizen in a UNIX
enviornment, while being as usable as a command line application can be in a
Windows enviornment.

It's design is influences by the UNIX shell, and tools like git.

Output is not "I'm doing this, I'm doing that" trace messag spew. Output is
meaningful and can be fed to tools like sed, awk, Perl and Ruby. 

Mix likes to emit HTML pages when human readable reports are desired. Mix will
put up with whatever templating engine is forced upon it by a development tool,
but Mix always prefers lightweight, no-nonsense Freemarker template language.

Mix does not have a pure-Java philosophy. You can use Java to write a task, if
you believe that will make a cross-platform build possible. However, if you are
developing in a UNIX environment, you can just as easily call Subversion or git
from a shell script, transfer files to your server using ssh-agent and scp. Mix
doesn't want to elminiate your shell enviornment,if you have one that works for
you.

If you don't have a command line enviornment that works for you, Mix is easy to
extend, it is a simple as writing a plain-old Java object, a Java Bean, that
can perform the tasks specific to your build. This is simple enough, because Mix
will manage your classpath and see to that you have all your dependencies in
your class loader.

While we're on the subject of dependencies, unlike other Java tools, Mix dooes
not pull down your jar files just-in-time. Rather, Mix has a number of commands
for building your repository, but you don't have to pay for a dependency update
hit with every command you run. Mix believes that repository management and
classpath management are separate and distinct tasks.

Many tools try to treat jars as artifacts that magically update and vivify, but
that magic never works without a lot of repository configuration to make it
work. It is magic if everything you need is in the Maven central repository, but
the moment you have to have an edge release, or a patched build, then you have
to maintain your own repository. The tools for managing your own repository are
weak, because repository management is supposed to be centralized, you end up
having to build a central repository somewhere that you can pull from, in lieu
of or in addition to the Maven central repository, so you have to manage a
central repository in order to have your local repository.

Mix intead manages your local repository, allowing you to import the jars you
need, build your distributions, and if you want a central repository to pull
from, you can use the same local repository toolset on your server.

No, Mix makes no attempt to distribute repositories, since Jars are not sources.

In fact, Mix gives you repository management tools. You get used to building
your repository and forgetting about it, just as through you were managing Ruby
Gems or Python Eggs.

USAGE

javac go/go.java

java go.go mix pull
java go.go mix pull

cafe's People

Contributors

bigeasy avatar flatheadmill avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

Forkers

vijayeluri

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.