Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(core): document shading cloud, parameters flag and more #46

Open
wants to merge 5 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions docs/annotations/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,10 @@ Cloud Annotations is available through [Maven Central](https://central.sonatype.

{{ dependency_listing("annotations", "core") }}

In order to for Cloud to obtain the parameter names for arguments you'll need to add the parameter flag to your Java/Kotlin compilation step.

{{ javac_parameters() }}

You then need to create an
{{ javadoc("https://javadoc.io/doc/org.incendo/cloud-annotations/latest/org/incendo/cloud/annotations/AnnotationParser.html", "AnnotationParser") }}
instance.
Expand Down
7 changes: 7 additions & 0 deletions docs/core/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -750,3 +750,10 @@ contains an opinionated implementation of the help system for Minecraft.
You can find examples on GitHub for either
[Builders](https://github.com/Incendo/cloud-minecraft/blob/master/examples/example-bukkit/src/main/java/cloud/commandframework/examples/bukkit/builder/feature/HelpExample.java) or
[Annotations](https://github.com/Incendo/cloud-minecraft/blob/master/examples/example-bukkit/src/main/java/cloud/commandframework/examples/bukkit/annotations/feature/HelpExample.java).

### Usage within projects

Cloud will have differing versions between core and the other groups of modules, Cloud Minecraft for example will be updated seperately. If core has a bug fix or feature that is not yet available
inside of the current Cloud Minecraft release you can define cloud-core as it's own dependency force it's use that way.You should also shade Cloud inside of your project, here's an example of doing so:
broccolai marked this conversation as resolved.
Show resolved Hide resolved

{{ shade_dependency() }}
143 changes: 143 additions & 0 deletions main.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,149 @@ def dependency_listing(name: str, version: str = None) -> str:
```
""".format(name=name, version=env.variables.version[version])

@env.macro
def shade_dependency() -> str:
return """
=== "Maven"

```xml
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.6.0</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very minor nitpick but there's some missing indentation here

</goals>
<configuration>
<relocations>
<relocation>
<pattern>org.incendo.cloud</pattern>
<shadedPattern>com.yourpackage.libs.cloud</shadedPattern>
</relocation>
</relocations>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
```

=== "Gradle (Kotlin)"

```kotlin
plugins {
id("com.gradleup.shadow") version "8.3.0"
}

tasks {
assemble {
dependsOn(shadowJar)
}

shadowJar {
relocate("org.incendo.cloud", "com.yourpackage.libs.cloud")
}
}
```

=== "Gradle (Groovy)"

```groovy
plugins {
id 'com.gradleup.shadow' version '8.3.0'
}

tasks {
assemble {
dependsOn shadowJar
}

shadowJar {
relocate 'org.incendo.cloud', 'com.yourpackage.libs.cloud'
}
}
```
"""

@env.macro
def javac_parameters() -> str:
return """
=== "Maven"

```xml
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<compilerArgs>
<arg>-parameters</arg>
</compilerArgs>
</configuration>
</plugin>

<!-- For kotlin plugins -->
<plugin>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-maven-plugin</artifactId>
<version>1.9.0</version> <!-- Replace with your Kotlin version -->
<executions>
<execution>
<id>compile</id>
<goals>
<goal>compile</goal>
</goals>
<configuration>
<args>
<arg>-java-parameters</arg>
</args>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
```

=== "Gradle (Kotlin)"

```kotlin
tasks.withType<JavaCompile> {
options.compilerArgs.add("-parameters")
}

// only needed if your project uses Kotlin
tasks.withType<KotlinCompile> {
compilerOptions {
freeCompilerArgs.add("-java-parameters")
}
}
```

=== "Gradle (Groovy)"

```groovy
tasks.withType(JavaCompile) {
options.compilerArgs << "-parameters"
}

// only needed if your project uses Kotlin
tasks.withType(KotlinCompile) {
kotlinOptions {
freeCompilerArgs << "-java-parameters"
}
}
```
"""

@env.macro
def javadoc(link: str, title: str = None) -> str:
if title is None:
Expand Down
Loading