Вопрос Как скомпилировать плагин из исходника

riassca

Пользователь
Сообщения
20
Плагин
Custom-Nameplates
Ядро сервера
  1. Paper
Версия сервера
  1. 1.21
Ссылка
https://github.com/Xiao-MoMi/Custom-Nameplates/releases/tag/2.3.3.0
Нашёл на GitHub исходный код плагина Custom-Nameplates, но я не знаю как собирать исходники в Jar файл. Объясните пожалуйста как мне с программой IntelliJ IDEA можно скомпилировать плагин имея исходники. Можете скинуть какой-то гайд, но пожалуйста - не первый попавшийся который вы сами не поняли.

Ссылка на исходник от разработчика:
 
Если в Intellij Idea: открыть вкладку с терминалом в нужном проекте (кнопка "Terminal") и вписать
Код:
./gradlew build

(можно и без неё, просто открыв cmd в нужной папке)
 
Если в Intellij Idea: открыть вкладку с терминалом в нужном проекте (кнопка "Terminal") и вписать
Код:
./gradlew build

(можно и без неё, просто открыв cmd в нужной папке)
> Task :common:compileJava FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':common:compileJava'.
> Could not find tools.jar. Please check that C:\Program Files\Java\jre1.8.0_51 contains a valid JDK installation.

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
> Get more help at .

BUILD FAILED in 1s
9 actionable tasks: 1 executed, 8 up-to-date
 
теперь новая проблема... я его собрал ,но у меня случилось вот такое
Код:
[18:16:09 ERROR]: [DirectoryProviderSource] Error loading plugin: Directory 'plugins\CustomNameplates-2.3.3.2-all.jar' failed to load!
java.lang.RuntimeException: Directory 'plugins\CustomNameplates-2.3.3.2-all.jar' failed to load!
        at io.papermc.paper.plugin.provider.source.FileProviderSource.registerProviders(FileProviderSource.java:59) ~[paper-1.20.1.jar:git-Paper-196]
        at io.papermc.paper.plugin.provider.source.DirectoryProviderSource.lambda$registerProviders$1(DirectoryProviderSource.java:34) ~[paper-1.20.1.jar:git-Paper-196]
        at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) ~[?:?]
        at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) ~[?:?]
        at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) ~[?:?]
        at java.util.Iterator.forEachRemaining(Iterator.java:133) ~[?:?]
        at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1845) ~[?:?]
        at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[?:?]
        at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[?:?]
        at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) ~[?:?]
        at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) ~[?:?]
        at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]
        at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596) ~[?:?]
        at io.papermc.paper.plugin.provider.source.DirectoryProviderSource.registerProviders(DirectoryProviderSource.java:32) ~[paper-1.20.1.jar:git-Paper-196]
        at io.papermc.paper.plugin.provider.source.DirectoryProviderSource.registerProviders(DirectoryProviderSource.java:14) ~[paper-1.20.1.jar:git-Paper-196]
        at io.papermc.paper.plugin.util.EntrypointUtil.registerProvidersFromSource(EntrypointUtil.java:14) ~[paper-1.20.1.jar:git-Paper-196]
        at io.papermc.paper.plugin.PluginInitializerManager.load(PluginInitializerManager.java:100) ~[paper-1.20.1.jar:git-Paper-196]
        at net.minecraft.server.Main.main(Main.java:137) ~[paper-1.20.1.jar:git-Paper-196]
        at org.bukkit.craftbukkit.Main.main(Main.java:324) ~[paper-1.20.1.jar:git-Paper-196]
        at io.papermc.paperclip.Paperclip.lambda$main$0(Paperclip.java:42) ~[app:?]
        at java.lang.Thread.run(Thread.java:842) ~[?:?]
Caused by: java.lang.IllegalArgumentException: Directory 'plugins\CustomNameplates-2.3.3.2-all.jar' does not contain a paper-plugin.yml or plugin.yml! Could not determine plugin type, cannot load a plugin from it!
        at io.papermc.paper.plugin.provider.source.FileProviderSource.registerProviders(FileProviderSource.java:54) ~[paper-1.20.1.jar:git-Paper-196]
        ... 20 more
[18:16:09 ERROR]: [DirectoryProviderSource] Error loading plugin: Directory 'plugins\CustomNameplates-2.3.3.2.jar' failed to load!
java.lang.RuntimeException: Directory 'plugins\CustomNameplates-2.3.3.2.jar' failed to load!
        at io.papermc.paper.plugin.provider.source.FileProviderSource.registerProviders(FileProviderSource.java:59) ~[paper-1.20.1.jar:git-Paper-196]
        at io.papermc.paper.plugin.provider.source.DirectoryProviderSource.lambda$registerProviders$1(DirectoryProviderSource.java:34) ~[paper-1.20.1.jar:git-Paper-196]
        at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) ~[?:?]
        at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) ~[?:?]
        at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) ~[?:?]
        at java.util.Iterator.forEachRemaining(Iterator.java:133) ~[?:?]
        at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1845) ~[?:?]
        at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[?:?]
        at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[?:?]
        at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) ~[?:?]
        at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) ~[?:?]
        at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]
        at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596) ~[?:?]
        at io.papermc.paper.plugin.provider.source.DirectoryProviderSource.registerProviders(DirectoryProviderSource.java:32) ~[paper-1.20.1.jar:git-Paper-196]
        at io.papermc.paper.plugin.provider.source.DirectoryProviderSource.registerProviders(DirectoryProviderSource.java:14) ~[paper-1.20.1.jar:git-Paper-196]
        at io.papermc.paper.plugin.util.EntrypointUtil.registerProvidersFromSource(EntrypointUtil.java:14) ~[paper-1.20.1.jar:git-Paper-196]
        at io.papermc.paper.plugin.PluginInitializerManager.load(PluginInitializerManager.java:100) ~[paper-1.20.1.jar:git-Paper-196]
        at net.minecraft.server.Main.main(Main.java:137) ~[paper-1.20.1.jar:git-Paper-196]
        at org.bukkit.craftbukkit.Main.main(Main.java:324) ~[paper-1.20.1.jar:git-Paper-196]
        at io.papermc.paperclip.Paperclip.lambda$main$0(Paperclip.java:42) ~[app:?]
        at java.lang.Thread.run(Thread.java:842) ~[?:?]
Caused by: java.lang.IllegalArgumentException: Directory 'plugins\CustomNameplates-2.3.3.2.jar' does not contain a paper-plugin.yml or plugin.yml! Could not determine plugin type, cannot load a plugin from it!
        at io.papermc.paper.plugin.provider.source.FileProviderSource.registerProviders(FileProviderSource.java:54) ~[paper-1.20.1.jar:git-Paper-196]
        ... 20 more
 
Последнее редактирование модератором:
Обычно пишут в ридми. Кратко:

Maven: mvn package или ./mvmw package
Gradle: ./gradlew build или ./gradlew shadow

У этого плагина итак в ридми всё написано -
вот что там написано

## How to build
### Windows
#### Command Line
Install JDK 17 and set the JDK installation path to JAVA_HOME as an environment variable.\
Start powershell and change directory to the project folder.\
Execute ".\gradlew build" and get the jar at /target/CustomNameplates-universe-version.jar.
#### IDE
Import the project and execute gradle build action.
##### About Proxy
If you are using a proxy, configurate the proxy in gradle.properties. Otherwise comment the lines in gradle.properties.
## Support the developer
Polymart: \
Afdian:
## Use CustomNameplates API
### Maven
```
<repositories>
<repository>
<id>jitpack</id>
<url> </url>
</repository>
</repositories>
```
```
<dependencies>
<dependency>
<groupId>com.github.Xiao-MoMi</groupId>
<artifactId>Custom-Nameplates</artifactId>
<version>{LATEST}</version>
<scope>provided</scope>
</dependency>
</dependencies>
```
### Gradle (Groovy)
```
repositories {
maven { url ' ' }
}
```
```
dependencies {
compileOnly 'com.github.Xiao-MoMi:Custom-Nameplates:{LATEST}'
}
```
### Gradle (Kotlin)
```
repositories {
maven(" ")
}
```
```
dependencies {
compileOnly("com.github.Xiao-MoMi:Custom-Nameplates:{LATEST}")
}
```
 
> Task :common:compileJava FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':common:compileJava'.
> Could not find tools.jar. Please check that C:\Program Files\Java\jre1.8.0_51 contains a valid JDK installation.

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
> Get more help at .

BUILD FAILED in 1s
9 actionable tasks: 1 executed, 8 up-to-date
так стоп
плагин разве не под новую джаву написан? он скорее всего и не должен на 8 джаве компилироваться вообще
 
так стоп
плагин разве не под новую джаву написан? он скорее всего и не должен на 8 джаве компилироваться вообще
я изменил на jdk 17
Объединено


я изменил на jdk 17
сейчас проблема в том что нету какого-то paper.yml или чёт такое там написано
 
сейчас проблема в том что нету какого-то paper.yml или чёт такое там написано
да
нет файла plugin.yml. как вариант можно попробовать просто открыть jar через архиватор и вручную закинуть
 
Назад
Сверху Снизу