Plex-FAWE/COMPILING.md

52 lines
2.2 KiB
Markdown
Raw Normal View History

2020-01-29 22:10:00 +00:00
Compiling
=========
You can compile FastAsyncWorldEdit as long as you have some version of Java greater than or equal to 8 installed. Gradle will download JDK 8 specifically if needed,
but it needs some version of Java to bootstrap from.
2020-01-29 22:10:00 +00:00
Note that if you have JRE 8 installed, Gradle will currently attempt to use that to compile, which will not work. It is easiest to uninstall JRE 8 and replace it with JDK 8.
You can get the JDK 8 [here](https://adoptopenjdk.net/?variant=openjdk8&jvmVariant=hotspot).
The build process uses Gradle, which you do *not* need to download. FastAsyncWorldEdit is a multi-module project with three active modules:
2020-01-29 22:10:00 +00:00
* `worldedit-core` contains the FastAsyncWorldEdit API
* `worldedit-bukkit` is the Bukkit plugin
* `worldedit-cli` is the command line interface
2020-01-29 22:10:00 +00:00
## To compile...
### NMS
FastAsyncWorldEdit uses NMS (net.minecraft.server) code in a variety of spots. NMS is not distributed via maven and therefore FastAsyncWorldEdit may not build without errors if you didn't install it into your local repository beforehand.
You can do that by either running Spigot's [BuildTools](https://www.spigotmc.org/wiki/buildtools/) targetting the versions needed or using Paper's paperclip with `java -Dpaperclip.install=true -jar paperclip.jar`.
2020-01-29 22:10:00 +00:00
### On Windows
1. Shift + right click the folder with FastAsyncWorldEdit's files and click "Open command prompt".
2. `gradlew clean build`
2020-01-29 22:10:00 +00:00
### On Linux, BSD, or Mac OS X
1. In your terminal, navigate to the folder with FastAsyncWorldEdit's files (`cd /folder/of/fawe/files`)
2. `./gradlew clean build`
2020-01-29 22:10:00 +00:00
## Then you will find...
You will find:
* The core FastAsyncWorldEdit API in **worldedit-core/build/libs**
* FastAsyncWorldEdit for Bukkit in **worldedit-bukkit/build/libs**
* the CLI version in **worldedit-cli/build/libs**
2020-01-29 22:10:00 +00:00
If you want to use FastAsyncWorldEdit, use the `FastAsyncWorldEdit-1.16-<commitHash>` version obtained in **worldedit-bukkit/build/libs**.
(The `-#` version includes FastAsyncWorldEdit + necessary libraries.)
2020-01-29 22:10:00 +00:00
## Other commands
* `gradlew idea` will generate an [IntelliJ IDEA](http://www.jetbrains.com/idea/) module for each folder.
_Possibly broken_:
* `gradlew eclipse` will generate an [Eclipse](https://www.eclipse.org/downloads/) project for each folder.