Diet Maven Mojo

A Maven Mojo for your friendly Java dependency minimization framework

Лицензия

Лицензия

Категории

Категории

Maven Компиляция и сборка
Группа

Группа

org.codarama.diet
Идентификатор

Идентификатор

diet-maven-mojo
Последняя версия

Последняя версия

0.0.1
Дата

Дата

Тип

Тип

maven-plugin
Описание

Описание

Diet Maven Mojo
A Maven Mojo for your friendly Java dependency minimization framework

Скачать diet-maven-mojo

Как подключить последнюю версию

<plugin>
    <groupId>org.codarama.diet</groupId>
    <artifactId>diet-maven-mojo</artifactId>
    <version>0.0.1</version>
</plugin>

Зависимости

compile (5)

Идентификатор библиотеки Тип Версия
org.apache.maven : maven-plugin-api jar 3.2.3
org.apache.maven : maven-core jar 3.3.3
org.codehaus.plexus : plexus-utils jar 3.0.8
org.codarama.diet : diet-engine jar 0.6.0
com.google.guava : guava jar 19.0

provided (1)

Идентификатор библиотеки Тип Версия
org.apache.maven.plugin-tools : maven-plugin-annotations jar 3.2

test (4)

Идентификатор библиотеки Тип Версия
junit : junit jar 4.8.2
org.mockito : mockito-all jar 1.9.5
org.powermock : powermock-module-junit4 jar 1.5.3
org.powermock : powermock-api-mockito jar 1.5.3

Модули Проекта

Данный проект не имеет модулей.

Status: Build Status Coverage Status Static Code Analysis Status Dependency Status

Chat with us: Chat at https://gitter.im/Codarama/diet-engine

Diet

Diet tries to create a jar from all of the jars used by a project. The result jar should contain only classes the project actually uses, nothing else.

This is currently just a library, but it should evolve to a Maven plugin, an eclpse plugin and perhaps a web project.

It's main target group is currently android development as space conservation is mostly uneeded for web development.

Features

Source Dependency Resolution:

Diet can resolve the dependencies of .java source files. Currently like this:

final Set<ClassName> dependencies = Dependencies
    .ofSource(SourceFile.fromFilepath("/abs/path/to/Source.java"))
    .set();

Binary Class Dependency Resolution:

Diet can also resolve the dependencies of compiled binary .class files:

final Set<ClassName> dependencies = Dependencies
    .ofClass(ClassFile.fromFilepath("/abs/path/to/Class.class"))
    .set();

The Dependencies API can also work with the classpath or with Core API File objects (no streams yet though). For more info on the Dependencies API have a look at the wiki.

Library minimization:

This will try to find all the 'actual dependencies' that a set of sources use, package them in a Jar and return it.

final JarFile outJar = Minimizer
    .sources("/abs/path/to/src/dir")
    .libs("/abs/path/to/libs") // this can also be a Maven ~/.m2/repository
    .getJar();

You can also set the output dir for the minimizer, have a look at the wiki for info.

Component Events:

Diet can notify you for updates on what it is currently doing. For instanse if you want to get detailed info while resolving the dependencies of a binary class you can:

ListenerRegistrar.register(new EventListener<ComponentEvent>() {
    public void on(ComponentEvent event) {
        // will be called on any event
    }
});

There is a whole hierarchy of events you can listen to, there is a wiki page on this also.

Usage:

In order to use the library you can either:

You can also build the master branch (on your own risk) in the same way you build the latest tag.

Notes:

Keep in mind that we're currently in very early alpha and the API changes constantly and can change dramatically :) Also wildcard imports in source files like import com.something.*; are currently not supported. So calling source dependency resolution on such a file or on a set containing one will result in an exception.

Donations:

Fund me on Gittip

org.codarama.diet

Версии библиотеки

Версия
0.0.1