Updated Project Setup (markdown)

Risto Lahtela 2018-11-17 13:32:32 +02:00
parent f1548bdbe2
commit 4112238476

@ -1,33 +1,63 @@
![Plan Header](http://puu.sh/AXSg7/5f2f78c06c.jpg)
# Project Set-Up
### 1. Fork the Plan repository & Clone that repository to your workstation.
Page version: **4.5.2**
1. Fork the Plan repository & Clone that repository to your workstation.
Here is a [Tutorial](https://help.github.com/articles/fork-a-repo/).
### 2. Run Maven install goal for PlanPluginBridge
2. Open `/Plan/` project folder inside the repository you just downloaded in your favorite IDE.
Most IDEs will sync the workspace and you can start working on the project.
2.1. Locate `PlanPluginBridge.jar` in the repository you just cloned. It is in `<repository-root>/PlanPluginBridge/`-folder.
If you're having issues join [Discord](discord.gg/yXKmjzT) or open an issue and I'll help you out.
2.2. Run a Maven goal: `mvn install:install-file -Dfile=<path-to-PlanPluginBridge.jar>`
This will install the plugin bridge into your local maven repository. The PluginBridge is a separate jar in order to reduce the dependencies that are required to work on the project.
You can check [.travis.yml](https://github.com/Rsl1122/Plan-PlayerAnalytics/blob/master/.travis.yml) for up to date install command
## Building
2.3. Rest of the dependencies should be downloaded automatically and you can start working on the project.
The project is split into 6 modules.
> Depending on your IDE there might be additional requirements to work on a Maven project. Check the IDE documentation on how to open a Maven project if you're having trouble.
Module | Description
-- | --
`common` | System related abstractions and main logic is in this package. Most work is done here.
`bukkit` | Bukkit/Spigot/Paper related classes
`bungee` | BungeeCord related classes
`sponge` | Sponge related classes
`velocity` | Velocity related classes
`plugin` | Module for shading all other modules into a single jar
## Possible Help
Plan uses [Dagger](https://google.github.io/dagger/) for dependency injection.
- [PlanPluginBridge](https://github.com/Rsl1122/Plan-PlayerAnalytics/tree/master/PlanPluginBridge) (jar Included in the Github repo)
Your IDE may be complaining about `DaggerPlanBukkitComponent` or another `Dagger###Component` class not being available.
These classes are generated by Dagger and can be fixed by running `mvn compile` on the project root.
- [Abstract Plugin Framework](https://github.com/Rsl1122/Abstract-Plugin-Framework/) (If not in Maven Central APF can be compiled with no extra dependencies)
> If a constructor with an `@Inject` is changed, the generated sources may go out of sync.
In this case you will have to run
> ```
> mvn clean
> ```
[Installing 3rd party Maven artifacts manually](https://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html)
If you would like to skip tests and build, use
```
mvn install -DskipTests
```
Other artifacts should exist in either Maven Central Repository or BungeeCord repository and will be downloaded automatically.
## Testing
If you're having issues join [Discord](discord.gg/yXKmjzT) and I'll try to help you out.
Tests are performed on Travis, but if you would like to run the tests on your machine, do:
```
mvn test
```
### Running tests inside IntelliJ IDEA
Running tests in IntelliJ IDEA requires some extra set-up because of multiple projects being present.
Testing configuration:
![Testing configuration](http://puu.sh/C3eRT/fdd146c153.png)
#### Possible errors:
**IntelliJ build window displays hundreds of compile errors and the project compilation fails, with no errors in the editor**
This can be fixed by running `mvn package` and then running the test configuration again.
# PlanPluginBridge Project Setup
@ -37,85 +67,4 @@ If you're having issues join [Discord](discord.gg/yXKmjzT) and I'll try to help
Since PlanPluginBridge uses a collection of other plugins, some of them can not be found in any maven repositories.
I have made a .bat script (Windows) for installing the required dependencies once you have obtained them.
- [install_dependencies.bat](https://github.com/Rsl1122/Plan-PlayerAnalytics/blob/master/PlanPluginBridge/install_dependencies.bat)
Here is a list of dependencies required to run the install script - The install script uses the names listed (with a .jar file format) in the same folder the script is located in.
```
x--------------------------------------------------x
| |
| Plan Plugin Bridge Dependency download links |
| 4.4.5 |
x--------------------------------------------------x
```
* AAC-3.5.0-b1
Requires a copy of AAC.
https://www.spigotmc.org/resources/aac-advanced-anti-cheat-hack-kill-aura-blocker.6442/
* AdvancedAchievements
In Maven Repository
* AdvancedBan-2.1.5
https://www.spigotmc.org/resources/advancedban.8695/
* ASkyBlock-3.0.9.4
https://www.spigotmc.org/resources/askyblock.1220/
* BanManager-5.15.4
https://www.spigotmc.org/resources/banmanager.21927/
* EssentialsX-2.15.0.1
https://www.spigotmc.org/resources/essentialsx.9089/
* Factions-2.14.0
MassiveCore-2.14.0
https://www.spigotmc.org/resources/factions.1900/
* GriefPrevention-16.8
In Maven Repository
https://github.com/TechFortress/GriefPrevention/releases/
* GriefPreventionPlus-13.3
https://github.com/KaiKikuchi/GriefPreventionPlus/releases
* Jobs4.7.4
https://www.spigotmc.org/resources/jobs-reborn.4216/
* Kingdoms-13.3.40
https://www.spigotmc.org/resources/kingdoms-plugin-demo.6392/
* LiteBansAPI-0.3
https://github.com/ruany/LiteBansAPI/releases
* mcMMO-1.6.0-SNAPSHOT
https://popicraft.net/jenkins/job/mcMMO/
* PlaceholderAPI
In Maven repository
* ProtocolSupport-4.28
https://www.spigotmc.org/resources/protocolsupport.7201/
* React-6.573
Requires a copy of React
https://www.spigotmc.org/resources/react-smart-server-performance.21057/
* RedProtect-7.6.3
In Maven Repository
* SuperbVote-0.5.3
https://www.spigotmc.org/resources/superbvote.11626/
* Towny-0.92.0.0
http://towny.palmergames.com/
* Vault-1.5.6
In Maven Repository
https://www.spigotmc.org/resources/vault.34315/updates
* ViaVersion-1.5.0
In Maven Repository
![PlanPluginBridge Dependencies for 4.4.5](http://puu.sh/BlJjn/6b92b8bf8f.png)
- [More instructions on setting up PlanPluginBridge maven project](https://github.com/Rsl1122/Plan-PlayerAnalytics/wiki/PlanPluginBridge-Project-Set-Up)