Introduce top-level Gradle build
- Convert ethereumj-studio build from Maven to Gradle as well - Extract common build elements to top-level build.gradle - Update top-level README accordingly
This commit is contained in:
parent
c396eb11ea
commit
0900039bdd
42
README.md
42
README.md
|
@ -1,39 +1,31 @@
|
||||||
[![ScreenShot](http://i.imgur.com/lJw1Tui.jpg)]
|
|
||||||
|
|
||||||
|
|
||||||
# Welcome to ethereumj
|
# Welcome to ethereumj
|
||||||
[![Gitter](https://badges.gitter.im/Join Chat.svg)](https://gitter.im/ethereum/ethereumj?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
[![Gitter](https://badges.gitter.im/Join Chat.svg)](https://gitter.im/ethereum/ethereumj?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
||||||
[![Build Status](https://travis-ci.org/ethereum/ethereumj.svg?branch=master)](https://travis-ci.org/ethereum/ethereumj) [![Coverage Status](https://coveralls.io/repos/ethereum/ethereumj/badge.png?branch=master)](https://coveralls.io/r/ethereum/ethereumj?branch=master)
|
[![Build Status](https://travis-ci.org/ethereum/ethereumj.svg?branch=master)](https://travis-ci.org/ethereum/ethereumj)
|
||||||
|
[![Coverage Status](https://coveralls.io/repos/ethereum/ethereumj/badge.png?branch=master)](https://coveralls.io/r/ethereum/ethereumj?branch=master)
|
||||||
[![Stories in Progress](https://badge.waffle.io/ethereum/ethereumj.png?title=In%20Progress&label=in_progress)](https://waffle.io/ethereum/ethereumj)
|
[![Stories in Progress](https://badge.waffle.io/ethereum/ethereumj.png?title=In%20Progress&label=in_progress)](https://waffle.io/ethereum/ethereumj)
|
||||||
|
|
||||||
# Goals
|
[![Now hiring](http://i.imgur.com/lJw1Tui.jpg)]
|
||||||
|
|
||||||
The ethereumj library is a Java implementation of the Ethereum protocol.
|
# About
|
||||||
|
ethereumj is a pure-Java implementation of the Ethereum protocol. For high-level information about Ethereum and its goals, visit [ethereum.org](https://ethereum.org). The [ethereum white paper](https://github.com/ethereum/wiki/wiki/%5BEnglish%5D-White-Paper) provides a complete conceptual overview, and the [yellow paper](http://gavwood.com/Paper.pdf) provides a formal definition of the protocol.
|
||||||
|
|
||||||
This repository currently contains:
|
This repository consists of:
|
||||||
* [core](ethereumj-core): the core library which can be included into your own Java project.
|
* [ethereum-core](ethereumj-core): a library suitable for inclusion in any JVM-based project.
|
||||||
* [studio](ethereumj-studio): a simple graphic interface for Ethereum functionality and set of showcases for core usage.
|
* [ethereum-studio](ethereumj-studio): a simple GUI for exploring Ethereum functionality and usage of the ethereumj API.
|
||||||
|
|
||||||
For an early peek, have a looki at this [video](https://youtu.be/D5ok7jh7AOg)
|
To see ethereum-studio in action, watch this [video](https://youtu.be/D5ok7jh7AOg).
|
||||||
|
|
||||||
# Todo
|
# Todo
|
||||||
|
The Ethereum protocol is under heavy development, thus so is this implementation. See the [todo list](TODO.md), GitHub [Issues](https://github.com/ethereum/ethereumj/issues) and [milestone schedule](https://github.com/ethereum/ethereumj/milestones). Issues are prioritized using [waffle](http://waffle.io/ethereum/ethereumj).
|
||||||
|
|
||||||
The Ethereum protocol is currenty heavily in development, thus so is this implementation.
|
# Contact
|
||||||
You can find a todo-list right [here](TODO.md) and the [milestone schedule](https://github.com/ethereum/ethereumj/milestones).
|
Chat with us via [Gitter](https://gitter.im/ethereum/ethereumj) or [#ethereumj](webchat.freenode.net/?channels=ethereumj) on Freenode.
|
||||||
For questions you can reach us in #ethereumj on Freenode.
|
|
||||||
|
|
||||||
# Documentation
|
# Building from source
|
||||||
|
Clone this repository and run `./gradlew build`. Import all sources into IntelliJ IDEA (14+) with `File->Import project` and point to the top-level `build.gradle` file.
|
||||||
|
|
||||||
To start you can visit [Ethereum.org](https://www.ethereum.org) and if you are looking for more information on the concept, the [ethereum white paper](https://github.com/ethereum/wiki/wiki/%5BEnglish%5D-White-Paper) is a good place to start as it outlines the vision. For the more technical minded, a protocol description can be found in the [yellow paper](http://gavwood.com/Paper.pdf) by Gavin Wood.
|
# Usage
|
||||||
|
For complete details on downloading, building and using [etherumj-core](ethereumj-core) and [ethereumj-studio](ethereumj-studio), see their respective readme files.
|
||||||
# Maven
|
|
||||||
|
|
||||||
The main ethereumj library can be found in the Maven repository
|
|
||||||
|
|
||||||
https://bintray.com/ethereum/maven/org.ethereum/view
|
|
||||||
|
|
||||||
For building ethereumj-core or ethereumj-studio look in their own individual README
|
|
||||||
|
|
||||||
# License
|
# License
|
||||||
|
ethereumj is released under the [MIT license](LICENSE).
|
||||||
This software is released under the MIT license, read it [here](LICENSE)
|
|
||||||
|
|
|
@ -0,0 +1,14 @@
|
||||||
|
wrapper.gradleVersion = '2.2.1'
|
||||||
|
|
||||||
|
subprojects {
|
||||||
|
apply plugin: 'java'
|
||||||
|
|
||||||
|
sourceCompatibility = 1.7
|
||||||
|
|
||||||
|
group = 'org.ethereum'
|
||||||
|
version = '0.7.15-SNAPSHOT'
|
||||||
|
|
||||||
|
repositories {
|
||||||
|
jcenter()
|
||||||
|
}
|
||||||
|
}
|
|
@ -8,13 +8,6 @@ plugins {
|
||||||
id 'com.github.kt3k.coveralls' version '2.0.1x'
|
id 'com.github.kt3k.coveralls' version '2.0.1x'
|
||||||
}
|
}
|
||||||
|
|
||||||
wrapper.gradleVersion = '2.2.1'
|
|
||||||
|
|
||||||
sourceCompatibility = 1.7
|
|
||||||
|
|
||||||
group = 'org.ethereum'
|
|
||||||
version = '0.7.15-SNAPSHOT'
|
|
||||||
|
|
||||||
mainClassName = 'org.ethereum.Start'
|
mainClassName = 'org.ethereum.Start'
|
||||||
|
|
||||||
ext.generatedSrcDir = file('src/gen/java')
|
ext.generatedSrcDir = file('src/gen/java')
|
||||||
|
@ -42,10 +35,6 @@ ext {
|
||||||
junitVersion = '4.11'
|
junitVersion = '4.11'
|
||||||
}
|
}
|
||||||
|
|
||||||
repositories {
|
|
||||||
jcenter()
|
|
||||||
}
|
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
compile "io.netty:netty-all:4.0.23.Final"
|
compile "io.netty:netty-all:4.0.23.Final"
|
||||||
compile "com.madgag.spongycastle:core:${scastleVersion}" // for SHA3 and SECP256K1
|
compile "com.madgag.spongycastle:core:${scastleVersion}" // for SHA3 and SECP256K1
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
dependencies {
|
||||||
|
compile project(':ethereumj-core')
|
||||||
|
compile "com.maxmind.geoip:geoip-api:1.2.11"
|
||||||
|
compile "com.maxmind.geoip2:geoip2:0.6.0"
|
||||||
|
compile "com.fifesoft:rsyntaxtextarea:2.5.0"
|
||||||
|
}
|
|
@ -1,317 +0,0 @@
|
||||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
|
||||||
<groupId>org.ethereum</groupId>
|
|
||||||
<artifactId>ethereumj-studio</artifactId>
|
|
||||||
<packaging>jar</packaging>
|
|
||||||
<version>0.7.8</version>
|
|
||||||
<name>EthereumJ Studio</name>
|
|
||||||
<url>http://www.ethereumj.org</url>
|
|
||||||
|
|
||||||
<!--
|
|
||||||
* To deploy the classes in one jar and dependencies to another dir
|
|
||||||
mvn clean package -Dmaven.test.skip=true
|
|
||||||
|
|
||||||
* To generate source for ANTLR parser/lexer
|
|
||||||
mvn antlr4:antlr4
|
|
||||||
|
|
||||||
* Install jar with sources to the maven repository
|
|
||||||
mvn source:jar install -Dmaven.test.skip=true
|
|
||||||
|
|
||||||
|
|
||||||
-->
|
|
||||||
|
|
||||||
<developers>
|
|
||||||
<developer>
|
|
||||||
<name>Roman Mandeleil</name>
|
|
||||||
</developer>
|
|
||||||
<developer>
|
|
||||||
<name>Nick Savers</name>
|
|
||||||
</developer>
|
|
||||||
</developers>
|
|
||||||
|
|
||||||
|
|
||||||
<distributionManagement>
|
|
||||||
<repository>
|
|
||||||
<id>internal.repo</id>
|
|
||||||
<name>Temporary Staging Repository</name>
|
|
||||||
<url>file://${project.build.directory}/mvn-repo</url>
|
|
||||||
</repository>
|
|
||||||
</distributionManagement>
|
|
||||||
|
|
||||||
<repositories>
|
|
||||||
<repository>
|
|
||||||
<id>central</id>
|
|
||||||
<name>bintray</name>
|
|
||||||
<url>http://dl.bintray.com/ethereum/maven/</url>
|
|
||||||
</repository>
|
|
||||||
|
|
||||||
<repository>
|
|
||||||
<id>mvn-central</id>
|
|
||||||
<name>maven</name>
|
|
||||||
<url>http://repo1.maven.org/maven2</url>
|
|
||||||
</repository>
|
|
||||||
</repositories>
|
|
||||||
|
|
||||||
|
|
||||||
<properties>
|
|
||||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
|
||||||
<!-- Third-party dependencies -->
|
|
||||||
<junit.version>4.11</junit.version>
|
|
||||||
<slf4j.version>1.7.7</slf4j.version>
|
|
||||||
<leveldb.version>0.7</leveldb.version>
|
|
||||||
<spongycastle.version>1.51.0.0</spongycastle.version>
|
|
||||||
<generated.sourceDirectory>gen</generated.sourceDirectory>
|
|
||||||
|
|
||||||
|
|
||||||
</properties>
|
|
||||||
|
|
||||||
<dependencies>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.ethereum</groupId>
|
|
||||||
<artifactId>ethereumj</artifactId>
|
|
||||||
<version>0.7.9.20141123.2140</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>com.maxmind.geoip</groupId>
|
|
||||||
<artifactId>geoip-api</artifactId>
|
|
||||||
<version>1.2.11</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>com.maxmind.geoip2</groupId>
|
|
||||||
<artifactId>geoip2</artifactId>
|
|
||||||
<version>0.6.0</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>com.fifesoft</groupId>
|
|
||||||
<artifactId>rsyntaxtextarea</artifactId>
|
|
||||||
<version>2.5.0</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
</dependencies>
|
|
||||||
|
|
||||||
|
|
||||||
<build>
|
|
||||||
|
|
||||||
<!--<resources>-->
|
|
||||||
<!--<resource>-->
|
|
||||||
<!--<directory>src/main/antlr4</directory>-->
|
|
||||||
<!--</resource>-->
|
|
||||||
<!--</resources>-->
|
|
||||||
|
|
||||||
|
|
||||||
<plugins>
|
|
||||||
|
|
||||||
<plugin>
|
|
||||||
<groupId>com.google.code.maven-replacer-plugin</groupId>
|
|
||||||
<artifactId>replacer</artifactId>
|
|
||||||
<version>1.5.3</version>
|
|
||||||
<executions>
|
|
||||||
<execution>
|
|
||||||
<phase>prepare-package</phase>
|
|
||||||
<goals>
|
|
||||||
<goal>replace</goal>
|
|
||||||
</goals>
|
|
||||||
</execution>
|
|
||||||
</executions>
|
|
||||||
<configuration>
|
|
||||||
<file>target/classes/system.properties</file>
|
|
||||||
<replacements>
|
|
||||||
<replacement>
|
|
||||||
<token>PROJECT.VERSION</token>
|
|
||||||
<value>${project.version}</value>
|
|
||||||
</replacement>
|
|
||||||
</replacements>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-source-plugin</artifactId>
|
|
||||||
<version>2.1.2</version>
|
|
||||||
<executions>
|
|
||||||
<execution>
|
|
||||||
<id>attach-sources</id>
|
|
||||||
<phase>verify</phase>
|
|
||||||
<goals>
|
|
||||||
<goal>jar-no-fork</goal>
|
|
||||||
</goals>
|
|
||||||
</execution>
|
|
||||||
</executions>
|
|
||||||
</plugin>
|
|
||||||
|
|
||||||
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-dependency-plugin</artifactId>
|
|
||||||
<version>2.8</version>
|
|
||||||
<executions>
|
|
||||||
<execution>
|
|
||||||
<id>copy-dependencies</id>
|
|
||||||
<phase>package</phase>
|
|
||||||
<goals>
|
|
||||||
<goal>copy-dependencies</goal>
|
|
||||||
</goals>
|
|
||||||
<configuration>
|
|
||||||
<outputDirectory>${project.build.directory}/dependency</outputDirectory>
|
|
||||||
<overWriteReleases>false</overWriteReleases>
|
|
||||||
<overWriteSnapshots>false</overWriteSnapshots>
|
|
||||||
<overWriteIfNewer>true</overWriteIfNewer>
|
|
||||||
</configuration>
|
|
||||||
</execution>
|
|
||||||
</executions>
|
|
||||||
</plugin>
|
|
||||||
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-jar-plugin</artifactId>
|
|
||||||
<version>2.4</version>
|
|
||||||
<configuration>
|
|
||||||
<archive>
|
|
||||||
<manifest>
|
|
||||||
<addClasspath>true</addClasspath>
|
|
||||||
<classpathPrefix>lib/</classpathPrefix>
|
|
||||||
<mainClass>org.ethereum.gui.ToolBar</mainClass>
|
|
||||||
</manifest>
|
|
||||||
</archive>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
|
|
||||||
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.eluder.coveralls</groupId>
|
|
||||||
<artifactId>coveralls-maven-plugin</artifactId>
|
|
||||||
<version>2.2.0</version>
|
|
||||||
</plugin>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.jacoco</groupId>
|
|
||||||
<artifactId>jacoco-maven-plugin</artifactId>
|
|
||||||
<version>0.7.1.201405082137</version>
|
|
||||||
<executions>
|
|
||||||
<execution>
|
|
||||||
<id>prepare-agent</id>
|
|
||||||
<goals>
|
|
||||||
<goal>prepare-agent</goal>
|
|
||||||
</goals>
|
|
||||||
</execution>
|
|
||||||
</executions>
|
|
||||||
<configuration>
|
|
||||||
<excludes>
|
|
||||||
<exclude>org/ethereum/gui/**/*.class</exclude>
|
|
||||||
<exclude>org/ethereum/**/*Test.class</exclude>
|
|
||||||
</excludes>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
|
|
||||||
<plugin>
|
|
||||||
<artifactId>maven-antrun-plugin</artifactId>
|
|
||||||
<version>1.3</version>
|
|
||||||
<executions>
|
|
||||||
<execution>
|
|
||||||
<phase>package</phase>
|
|
||||||
<configuration>
|
|
||||||
<tasks>
|
|
||||||
<property name="maven.project.artifactId" value="${project.artifactId}"/>
|
|
||||||
<property name="maven.project.version" value="${project.version}"/>
|
|
||||||
<ant antfile="build-post-package.xml" target="run"/>
|
|
||||||
</tasks>
|
|
||||||
</configuration>
|
|
||||||
<goals>
|
|
||||||
<goal>run</goal>
|
|
||||||
</goals>
|
|
||||||
</execution>
|
|
||||||
</executions>
|
|
||||||
</plugin>
|
|
||||||
|
|
||||||
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.antlr</groupId>
|
|
||||||
<artifactId>antlr4-maven-plugin</artifactId>
|
|
||||||
<version>4.3</version>
|
|
||||||
<configuration>
|
|
||||||
<listener>true</listener>
|
|
||||||
<visitor>true</visitor>
|
|
||||||
</configuration>
|
|
||||||
<executions>
|
|
||||||
<execution>
|
|
||||||
<id>antlr</id>
|
|
||||||
<goals>
|
|
||||||
<goal>antlr4</goal>
|
|
||||||
</goals>
|
|
||||||
</execution>
|
|
||||||
</executions>
|
|
||||||
</plugin>
|
|
||||||
|
|
||||||
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-compiler-plugin</artifactId>
|
|
||||||
<version>3.1</version>
|
|
||||||
<configuration>
|
|
||||||
<source>1.7</source>
|
|
||||||
<target>1.7</target>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
|
|
||||||
|
|
||||||
<plugin>
|
|
||||||
<artifactId>maven-deploy-plugin</artifactId>
|
|
||||||
<version>2.8.1</version>
|
|
||||||
<configuration>
|
|
||||||
<altDeploymentRepository>internal.repo::default::file://${project.build.directory}/mvn-repo</altDeploymentRepository>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
|
|
||||||
|
|
||||||
</plugins>
|
|
||||||
<pluginManagement>
|
|
||||||
<plugins>
|
|
||||||
<!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.eclipse.m2e</groupId>
|
|
||||||
<artifactId>lifecycle-mapping</artifactId>
|
|
||||||
<version>1.0.0</version>
|
|
||||||
<configuration>
|
|
||||||
<lifecycleMappingMetadata>
|
|
||||||
<pluginExecutions>
|
|
||||||
<pluginExecution>
|
|
||||||
<pluginExecutionFilter>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-dependency-plugin</artifactId>
|
|
||||||
<versionRange>[2.0,)</versionRange>
|
|
||||||
<goals>
|
|
||||||
<goal>copy-dependencies</goal>
|
|
||||||
<goal>unpack</goal>
|
|
||||||
</goals>
|
|
||||||
</pluginExecutionFilter>
|
|
||||||
<action>
|
|
||||||
<ignore></ignore>
|
|
||||||
</action>
|
|
||||||
</pluginExecution>
|
|
||||||
<pluginExecution>
|
|
||||||
<pluginExecutionFilter>
|
|
||||||
<groupId>org.jacoco</groupId>
|
|
||||||
<artifactId>jacoco-maven-plugin</artifactId>
|
|
||||||
<versionRange>[0.7.1.201405082137,)</versionRange>
|
|
||||||
<goals>
|
|
||||||
<goal>prepare-agent</goal>
|
|
||||||
</goals>
|
|
||||||
</pluginExecutionFilter>
|
|
||||||
<action>
|
|
||||||
<ignore></ignore>
|
|
||||||
</action>
|
|
||||||
</pluginExecution>
|
|
||||||
</pluginExecutions>
|
|
||||||
</lifecycleMappingMetadata>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
</plugins>
|
|
||||||
</pluginManagement>
|
|
||||||
</build>
|
|
||||||
|
|
||||||
</project>
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
rootProject.name = "ethereumj"
|
||||||
|
|
||||||
|
include "ethereumj-core"
|
||||||
|
include "ethereumj-studio"
|
Loading…
Reference in New Issue