Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Dismiss Notice

Помогите [РЕШЕНО] Как правильно импортировать PlaceholderAPI c помощью Maven?

Discussion in 'Разработка плагинов для новичков' started by nikorr0, Nov 9, 2021.

  1. Автор темы
    nikorr0

    nikorr0 Новичок

    Trophy Points:
    16
    Хочу создать свои плейсхолдеры для своего плагина. Для этого мне нужно импортировать PlaceholderAPI с помощью Maven в свой плагин, вставив в pom.xml код который написан в официальном гайде.
    Но при вставке этого кода возникает две подобные ошибки, одна из них :

    Code:
    Invalid content was found starting with element '{"http://maven.apache.org/POM/4.0.0":repositories}'.
    One of '{"http://maven.apache.org/POM/4.0.0":parent, "http://maven.apache.org/POM/4.0.0":description,
     "http://maven.apache.org/POM/4.0.0":url, "http://maven.apache.org/POM/4.0.0":prerequisites,
     "http://maven.apache.org/POM/4.0.0":issueManagement,
     "http://maven.apache.org/POM/4.0.0":ciManagement,
     "http://maven.apache.org/POM/4.0.0":inceptionYear, "http://maven.apache.org/POM/4.0.0":mailingLists,
     "http://maven.apache.org/POM/4.0.0":developers, "http://maven.apache.org/POM/4.0.0":contributors,
     "http://maven.apache.org/POM/4.0.0":licenses, "http://maven.apache.org/POM/4.0.0":scm,
     "http://maven.apache.org/POM/4.0.0":organization, "http://maven.apache.org/POM/4.0.0":profiles,
     "http://maven.apache.org/POM/4.0.0":modules, "http://maven.apache.org/POM/4.0.0":pluginRepositories,
     "http://maven.apache.org/POM/4.0.0":reports, "http://maven.apache.org/POM/4.0.0":reporting,
     "http://maven.apache.org/POM/4.0.0":dependencyManagement,
     "http://maven.apache.org/POM/4.0.0":distributionManagement}' is expected.
    
    Из-за этого я не могу использовать PlaceholderAPI в своем плагине.

    Код, который находится у меня в pom.xml :

    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>nikorr0</groupId>
        <artifactId>minecraftplugin5</artifactId>
        <version>0.1-SNAPSHOT</version>
        <packaging>jar</packaging>
    
        <name>Minecraftplugin5</name>
    
        <properties>
            <java.version>1.8</java.version>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        </properties>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.8.1</version>
                    <configuration>
                        <source>${java.version}</source>
                        <target>${java.version}</target>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-shade-plugin</artifactId>
                    <version>3.2.4</version>
                    <executions>
                        <execution>
                            <phase>package</phase>
                            <goals>
                                <goal>shade</goal>
                            </goals>
                            <configuration>
                                <createDependencyReducedPom>false</createDependencyReducedPom>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
            <resources>
                <resource>
                    <directory>src/main/resources</directory>
                    <filtering>true</filtering>
                </resource>
            </resources>
        </build>
    
        <repositories>
            <repository>
                <id>papermc-repo</id>
                <url>https://papermc.io/repo/repository/maven-public/</url>
            </repository>
            <repository>
                <id>sonatype</id>
                <url>https://oss.sonatype.org/content/groups/public/</url>
            </repository>
        </repositories>
    
        <dependencies>
            <dependency>
                <groupId>com.destroystokyo.paper</groupId>
                <artifactId>paper-api</artifactId>
                <version>1.16.5-R0.1-SNAPSHOT</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.sonatype.sisu</groupId>
                <artifactId>sisu-inject-bean</artifactId>
                <version>1.4.2</version>
            </dependency>
        </dependencies>
    
    //Код, который нужно вставить по официальному гайду l
    //                                                  v
        <repositories>
            <repository>
                <id>placeholderapi</id>
                <url>https://repo.extendedclip.com/content/repositories/placeholderapi/</url>
            </repository>
        </repositories>
        <dependencies>
            <dependency>
                <groupId>me.clip</groupId>
                <artifactId>placeholderapi</artifactId>
                <version>{VERSION}</version>
                <scope>provided</scope>
            </dependency>
        </dependencies>
    
    </project>
    
    
    Что мне нужно сделать, чтобы я мог использовать PlaceholderAPI в своем плагине?
     
    Last edited: Nov 10, 2021
  2. Хостинг MineCraft
    <
  3. WVDjvWUYD

    WVDjvWUYD Активный участник Пользователь

    Trophy Points:
    68
    Имя в Minecraft:
    Leieheueu
    сделай так:
    Code:
       <repositories>
            <repository>
                <id>papermc-repo</id>
                <url>https://papermc.io/repo/repository/maven-public/</url>
            </repository>
            <repository>
                <id>sonatype</id>
                <url>https://oss.sonatype.org/content/groups/public/</url>
            </repository>
            <repository>
                <id>placeholderapi</id>
                <url>https://repo.extendedclip.com/content/repositories/placeholderapi/</url>
            </repository>
        </repositories>
    
        <dependencies>
            <dependency>
                <groupId>com.destroystokyo.paper</groupId>
                <artifactId>paper-api</artifactId>
                <version>1.16.5-R0.1-SNAPSHOT</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.sonatype.sisu</groupId>
                <artifactId>sisu-inject-bean</artifactId>
                <version>1.4.2</version>
            </dependency>
            <dependency>
                <groupId>me.clip</groupId>
                <artifactId>placeholderapi</artifactId>
                <version>2.9.2</version>
                <scope>provided</scope>
            </dependency>
        </dependencies>
    
    </project>
    
     
    nikorr0 likes this.
  4. Автор темы
    nikorr0

    nikorr0 Новичок

    Trophy Points:
    16

    Спасибо за помощь, но проблема не решилась. Я изменил код в pom.xml на:

    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>nikorr0</groupId>
        <artifactId>minecraftplugin5</artifactId>
        <version>0.1-SNAPSHOT</version>
        <packaging>jar</packaging>
    
        <name>Minecraftplugin5</name>
    
        <properties>
            <java.version>1.8</java.version>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        </properties>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.8.1</version>
                    <configuration>
                        <source>${java.version}</source>
                        <target>${java.version}</target>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-shade-plugin</artifactId>
                    <version>3.2.4</version>
                    <executions>
                        <execution>
                            <phase>package</phase>
                            <goals>
                                <goal>shade</goal>
                            </goals>
                            <configuration>
                                <createDependencyReducedPom>false</createDependencyReducedPom>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
            <resources>
                <resource>
                    <directory>src/main/resources</directory>
                    <filtering>true</filtering>
                </resource>
            </resources>
        </build>
    
       //Код, который я вставил l
       //                       v
    
     
        <repositories>
            <repository>
                <id>papermc-repo</id>
                <url>https://papermc.io/repo/repository/maven-public/</url>
            </repository>
            <repository>
                <id>sonatype</id>
                <url>https://oss.sonatype.org/content/groups/public/</url>
            </repository>
            <repository>
                <id>placeholderapi</id>
                <url>https://repo.extendedclip.com/content/repositories/placeholderapi/</url>
            </repository>
        </repositories>
    
        <dependencies>
            <dependency>
                <groupId>com.destroystokyo.paper</groupId>
                <artifactId>paper-api</artifactId>
                <version>1.16.5-R0.1-SNAPSHOT</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.sonatype.sisu</groupId>
                <artifactId>sisu-inject-bean</artifactId>
                <version>1.4.2</version>
            </dependency>
            <dependency>
                <groupId>me.clip</groupId>
                <artifactId>placeholderapi</artifactId>
                <version>2.10.10</version>
                <scope>provided</scope>
            </dependency>
        </dependencies>
    
    </project>
    
    PlaceholderAPI не найден, и ошибки изменились на другие:
    Code:
    Duplicated tag: 'repositories' (position: START_TAG seen ...</dependencies>\n\n    <repositories>... @75:19)
    
    Dependency 'me.clip:placeholderapi:2.10.10' not found
    Dependency 'me.clip:placeholderapi:2.10.10' not found
    Dependency 'me.clip:placeholderapi:2.10.10' not found
    
    Также, я заметил, что когда я пытаюсь использовать PlaceholderAPI в коде своего плагина в pom.xml пропадает одна ошибка, а остальные остаются:
    Code:
    Dependency 'me.clip:placeholderapi:2.10.10' not found
    Dependency 'me.clip:placeholderapi:2.10.10' not found
    Dependency 'me.clip:placeholderapi:2.10.10' not found
    
     
    Last edited: Nov 10, 2021
  5. WVDjvWUYD

    WVDjvWUYD Активный участник Пользователь

    Trophy Points:
    68
    Имя в Minecraft:
    Leieheueu
    Странно, попробовал у себя собрать - все зависимости подхватываются.
    А комментарии у тебя в самом pom.xml или ты их для меня пишешь? Такое написание комментариев в pom.xml недопустимо
     
  6. Автор темы
    nikorr0

    nikorr0 Новичок

    Trophy Points:
    16
    Пишу комментарии в коде только здесь, в файле pom.xml комментариев нет. Спасибо еще раз за помощь.
     
  7. Автор темы
    nikorr0

    nikorr0 Новичок

    Trophy Points:
    16
    Проблема решена.
    Оказывается, нужно было сначала скачать и установить Maven.
    Вот гайд:


    После этого нужно установить нужную библиотеку. Чтобы это сделать нужно создать файл pom.xml в C:\Users\(Имя пользователя). И в этот файл вставить все то, что написано в файле pom.xml, который находится в плагине. В моем случае, это:
    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>nikorr0</groupId>
        <artifactId>minecraftplugin5</artifactId>
        <version>0.1-SNAPSHOT</version>
        <packaging>jar</packaging>
    
        <name>Minecraftplugin5</name>
    
        <properties>
            <java.version>1.8</java.version>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        </properties>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.8.1</version>
                    <configuration>
                        <source>${java.version}</source>
                        <target>${java.version}</target>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-shade-plugin</artifactId>
                    <version>3.2.4</version>
                    <executions>
                        <execution>
                            <phase>package</phase>
                            <goals>
                                <goal>shade</goal>
                            </goals>
                            <configuration>
                                <createDependencyReducedPom>false</createDependencyReducedPom>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
            <resources>
                <resource>
                    <directory>src/main/resources</directory>
                    <filtering>true</filtering>
                </resource>
            </resources>
        </build>
    
        <repositories>
            <repository>
                <id>papermc-repo</id>
                <url>https://papermc.io/repo/repository/maven-public/</url>
            </repository>
            <repository>
                <id>sonatype</id>
                <url>https://oss.sonatype.org/content/groups/public/</url>
            </repository>
    
            <repository>
                <id>placeholderapi</id>
                <url>https://repo.extendedclip.com/content/repositories/placeholderapi/</url>
            </repository>
        </repositories>
    
        <dependencies>
            <dependency>
                <groupId>com.destroystokyo.paper</groupId>
                <artifactId>paper-api</artifactId>
                <version>1.16.5-R0.1-SNAPSHOT</version>
                <scope>provided</scope>
            </dependency>
    
            <dependency>
                <groupId>me.clip</groupId>
                <artifactId>placeholderapi</artifactId>
                <version>2.10.10</version>
                <scope>provided</scope>
            </dependency>
        </dependencies>
    
    </project>
    
    Далее сохранить созданный файл, открыть командную строку и написать команду:
    Code:
    mvn clean install
    Должны пройти скачивание и установка библиотек. После успешной установки нужно перезагрузить компьютер.
     
    Last edited: Nov 10, 2021
  8. WVDjvWUYD

    WVDjvWUYD Активный участник Пользователь

    Trophy Points:
    68
    Имя в Minecraft:
    Leieheueu
    ну, или использовать intellij idea и все она сделает за тебя)
     

Share This Page