mirror of
https://github.com/ChristopherA/Learning-Bitcoin-from-the-Command-Line.git
synced 2025-06-08 00:16:26 +00:00
fixing up maven installation
This commit is contained in:
parent
550c37c99f
commit
cf5380eab1
@ -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,24 +36,24 @@ 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>
|
||||||
```
|
```
|
||||||
@ -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
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user