fixing up maven installation

This commit is contained in:
Shannon Appelcline 2020-09-01 11:20:06 -10:00 committed by GitHub
parent 550c37c99f
commit cf5380eab1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,33 +1,31 @@
# 18.2: Accessing Bitcoind with Java # 17.2: Accessing Bitcoind with Java
> **NOTE:** This is a draft in progress, so that I can get some feedback from early reviewers. It is not yet ready for learning. > **NOTE:** This is a draft in progress, so that I can get some feedback from early reviewers. It is not yet ready for learning.
Interacting with the `bitcoind` directly and using command-line `curl` can get simple if you understand how it works, but there's a project [JavaBitcoindRpcClient](https://github.com/Polve/JavaBitcoindRpcClient) that provides the functionality in a Java-API level, making it even easier to interact with your Bitcoin Server. This section explains how to interact with `bitcoind` using the Java programming language and the [JavaBitcoindRpcClient](https://github.com/Polve/JavaBitcoindRpcClient).
## Setting Up Java
## Setup Java You can install Java on your server, using the `apt-get` command. You will also install [Apache Maven](http://maven.apache.org/) to manage the dependencies.
To install Java on the VPS Server, you are able to use the `apt-get` command. We will also use [Apache Maven](http://maven.apache.org/) to manage the dependencies, so we will install it together. In this project we will create a maven project and indicate minimum configuration about Gradle (https://gradle.org/releases/)
``` ```
$ apt-get install openjdk-11-jre-headless maven $ sudo apt-get install openjdk-11-jre-headless maven
``` ```
You can verify your Java installation: You can verify your Java installation:
``` ```
$ java -version $ java -version
openjdk version "11.0.7" 2020-04-14 openjdk version "11.0.8" 2020-07-14
OpenJDK Runtime Environment (build 11.0.7+10-post-Ubuntu-2ubuntu218.04) OpenJDK Runtime Environment (build 11.0.8+10-post-Debian-1deb10u1)
OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Ubuntu-2ubuntu218.04, mixed mode, sharing) OpenJDK 64-Bit Server VM (build 11.0.8+10-post-Debian-1deb10u1, mixed mode, sharing)
``` ```
## Create maven project ### Creating a Maven Project
In order to prepare for Bitcoin on java, you will create a Maven project:
``` ```
mvn archetype:generate -DgroupId=com.blockchaincommons.lbtc -DartifactId=java-project -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false $ mvn archetype:generate -DgroupId=com.blockchaincommons.lbtc -DartifactId=java-project -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
``` ```
It will download some dependencies This will download some dependencies
``` ```
Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-clean-plugin/2.5/maven-clean-plugin-2.5.pom Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-clean-plugin/2.5/maven-clean-plugin-2.5.pom
Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-clean-plugin/2.5/maven-clean-plugin-2.5.pom (4 KB at 4.2 KB/sec) Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-clean-plugin/2.5/maven-clean-plugin-2.5.pom (4 KB at 4.2 KB/sec)
@ -38,26 +36,26 @@ Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/maven-parent/2
Downloading: https://repo.maven.apache.org/maven2/org/apache/apache/10/apache-10.pom Downloading: https://repo.maven.apache.org/maven2/org/apache/apache/10/apache-10.pom
.............. ..............
``` ```
It will create a configuration file pom.xml It will also create a configuration file `pom.xml`:
``` ```
user@machine:~/BitcoinRpcClient/java-project$ ll $ cd java-project
total 16 $ ls -lagh
drwxr-xr-x 3 user user 4096 Jun 17 16:47 ./ total 16K
drwxr-xr-x 3 user user 4096 Jun 17 15:02 ../ drwxr-xr-x 3 sudo 4.0K Sep 1 13:58 .
-rw-r--r-- 1 user user 1175 Jun 17 16:34 pom.xml drwxr-xr-x 15 sudo 4.0K Sep 1 13:58 ..
drwxr-xr-x 4 user user 4096 Jun 17 15:02 src/ -rw-r--r-- 1 sudo 663 Sep 1 13:58 pom.xml
user@machine:~/BitcoinRpcClient/java-project$ drwxr-xr-x 4 sudo 4.0K Sep 1 13:58 src
``` ```
This project uses JavaBitcoindRpcClient, so you need include the dependency editing pom.xml file In order to include `JavaBitcoindRpcClient`, you must add that dependency to `<dependendencies>` in the `pom.xml` file
```xml ```xml
<dependency> <dependency>
<groupId>wf.bitcoin</groupId> <groupId>wf.bitcoin</groupId>
<artifactId>JavaBitcoindRpcClient</artifactId> <artifactId>bitcoin-rpc-client</artifactId>
<version>1.1.0</version> <version>1.1.0</version>
</dependency> </dependency>
``` ```
You need to add compiler properties to indicate what JDK version will compile the source code. You need to add compiler properties to indicate what JDK version will compile the source code.
@ -65,14 +63,14 @@ You need to add compiler properties to indicate what JDK version will compile th
<properties> <properties>
<!-- https://maven.apache.org/general.html#encoding-warning --> <!-- https://maven.apache.org/general.html#encoding-warning -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.11</maven.compiler.source> <maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>1.11</maven.compiler.target> <maven.compiler.target>11</maven.compiler.target>
</properties> </properties>
``` ```
Finally add source code to java classes and execute Finally add source code to java classes and execute
``` ```
user@machine:~/BitcoinRpcClient/java-project$ mvn package $ mvn package
[INFO] Scanning for projects... [INFO] Scanning for projects...
[INFO] [INFO]
[INFO] ------------------< com.blockchaincommons.lbtc:java-project >------------------- [INFO] ------------------< com.blockchaincommons.lbtc:java-project >-------------------
@ -101,12 +99,15 @@ Tests run: 2, Failures: 0, Errors: 0, Skipped: 0
[INFO] ------------------------------------------------------------------------``` [INFO] ------------------------------------------------------------------------```
``` ```
Or if you use Gradle:
### Creating Alternative Projects
If you use [Gradle]((https://gradle.org/releases/), you can instead run:
```groovy ```groovy
compile 'wf.bitcoin:JavaBitcoindRpcClient:1.1.0' compile 'wf.bitcoin:JavaBitcoindRpcClient:1.1.0'
``` ```
If you want a sample project and some instructions on how to run it on the server that we just created, you can refer to the [Bitcoind Java Sample Project](https://github.com/brunocvcunha/bitcoind-java-client-sample/). If you want a sample project and some instructions on how to run it on the server that you just created, you can refer to the [Bitcoind Java Sample Project](https://github.com/brunocvcunha/bitcoind-java-client-sample/).
## Build Your Connection ## Build Your Connection