Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Wgrywanie pliki jar poprzez Maven


fdfdfdfdV

Rekomendowane odpowiedzi

Opublikowano

Siemaneczko!

Nie widziałem na tym forum żadnego poradnika do mavena, a wiele ludzi zakłada wątki, że mają problem z dodaniem bukkit api do swojego projektu. Używane przeze mnie IDE to IntelliJ IDEA, a wersja javy to 1.8.

 

JDK 8 można pobrać stąd: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

(Zaznaczamy Accept License Agreement oraz pobieramy odpowiedni plik pod nasz system operacyjny)

 

IntellIJ IDEA możn pobrać stąd: https://www.jetbrains.com/idea/download/#section=windows

(Wybieramy nasz system operacyjny oraz wersje community(darmowa) lub ultimate(płatna, ale jest opcja 30dniowego triala)

 

Po zainstalowaniu oraz odpaleniu naszego IDE wykonujemy następująco czynność:

klikamy File -> New -> Project

 

1643614928608491555313.png

 

(Wygląd mojego IDE może się troche różnić, ponieważ posiadam ciemne tło oraz lekko zmodyfikowane kolory, czcionke poprzez: https://plugins.jetbrains.com/plugin/8006-material-theme-ui)

 

Następnie wybieramy tryb projektu Maven oraz w Project SDK pokazujemy dla programu ścieżke do naszego JDK 8.

 

6930314928608951555313.png

 

 

Po kliknięciu Next wyskoczy nam okienko, które uzupełniamy następująco:

GroupId - nasza domena od tyłu, czyli jeśli posiadamy stronę internetową zakończoną .pl będzie to wyglądać następująco: pl.nazwastrony

jeśli natomiast nie posiadamy strony można użyc naszego adresu email

com.gmail.nazwaużytkownika

(PAMIĘTAJ, ŻE MUSISZ PODAĆ WSZYSTKO OD KOŃCA!)

ArifactID - Nazwa naszego projektu np. dropplugin

(PISZEMY Z MAŁYCH)

Version - Standarodow będzie to 1.0-SNAPSHOT można to zostawić ale ja polecam zmienić na 1.0

 

7581314928652111555313.png

 

 

Po ponownym kliknięciu Next wyskoczy nam okno w którym będzie do wpisania Project Name oraz do wybrania lokacja naszego projektu.

w Project Name wpisujemy to samo co w artifactId. Natomiast Project location jest już obojętne można ustawić to nawet na pulpit, ale ja zawsze mam domyślnie czyli c -> użytkownicy -> moja nazwa użytkownika -> ideaProjects/nazwaprojektu

 

9500114928612591555313.png

 

 

Po stworzeniu projektu automatycznie otworzy się nam plik pom.xl, który będzie wyglądał tak:

 

 

<?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>com.gmail.myname</groupId>
    <artifactId>dropplugin</artifactId>
    <version>1.0-SNAPSHOT</version>


</project>

 

należy dopisać do niego pod <version> następująco rzecz:

<name>NazwaPluginu(ToSamoCoWArtifactID, czyli np. DropPlugin)</name>

teraz wygląda to następująco:

 

<?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>com.gmail.myname</groupId>
    <artifactId>DropPlugin</artifactId>
    <version>1.0-SNAPSHOT</version>
    <name>DropPlugin</name>


</project> 

 

 

Jeśli uzywamy IntelliJ IDEA wyskoczy nam w prawym dolnym rogu Maven Project need to be imported w którym zaznaczamy Enable Auto-Import

 

9452714928615321555313.png

 

 

Teraz czas na dodanie naszego spigot oraz bukkit api

robimy to wklejajac pod nasze <name>NazwaPluginu</name>

następujący tekst:

 

<repositories>
    <repository>
        <id>spigot-repo</id>
        <url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
    </repository>
</repositories>
<dependencies>
    <!--Spigot API-->
    <dependency>
           <groupId>org.spigotmc</groupId>
           <artifactId>spigot-api</artifactId>
           <version>1.11.2-R0.1-SNAPSHOT</version>
           <scope>provided</scope>
    </dependency>
    <!--Bukkit API-->
    <dependency>
            <groupId>org.bukkit</groupId>
            <artifactId>bukkit</artifactId>
            <version>1.11.2-R0.1-SNAPSHOT</version>
            <scope>provided</scope>
    </dependency>
</dependencies> 

 

jeśli masz zamiar w pluginie uzywać importów net.minecraft.server dodaj następujący tekst

nad </dependencies>

 

   <dependency>
            <groupId>org.bukkit</groupId>
            <artifactId>craftbukkit</artifactId>
            <version>1.11.2-R0.1-SNAPSHOT</version>
            <scope>provided</scope>
    </dependency> 

 

 

jeśli chcesz dodać do importów coś własnego np. własne api w folderze projektu masz/tworzysz folder repo do, którego wrzucasz tą rzecz, a następnei nad </dependencies> dodajesz to:

 

<dependency>
<groupId>od czego zaczyna się domena w tym jarze czyli np. pl.api.blabla to tu będzie samo pl</groupId>
<artifactId>nazwa tego jara/artifactId>
<version>wersja tego jara</version>
<scope>system</scope>
<systemPath>${project.basedir}/repo/tenplik.jar/systemPath>
</dependency>

 

 

Teraz wystarczy w src -> main -> resources utworzy twój plik plugin.yml, który odpowiednio skonfigurujesz oraz w src -> main -> java utworzyć package taki jak podałeś w groupid + nazwapluginu czyli np.

com.gmail.mojanazwa.dropplugin, a tam już odpowiednio stworzyć potrzebne ci package czyli np. commands/listeners itd...

 

podczas konfigurowania plugin.yml możesz użyc takiej rzeczy jak version: ${project.version} wtedy wersja zostania pobrana z pom.xl, ale pamiętaj, że nie musisz tego robic możesz podać ją recznie

 

po napisaniu całego pluginu lub jego części chcesz pewnie coś przetestować lub już ostatecznie wrzucić na serwer. musisz więc kod zamienić w plik .jar (wyeksprotować projekt)

robisz to następująco

Udajesz się do głównej klasy swojego pluginu, czyli według zasad javy i bukkita będzie to NazwaPluginu+Plugin, czyli np DropPlugin

klikasz File oraz Project Structure

 

6772014928619631555313.png

 

 

Poprzez nawigacje programu znajdującą się po lewej stronie przechodzisz do zakładki artifacts

klikasz znajdujący się na górze znaczek +

 

7846414928620451555313.png

 

następnie klikasz jar oraz from modules with dependencies

 

4151414928621721555313.png

 

W Main Class wybierasz główne klasę twojego pluginu

reszte zostawiasz i klikasz ok

teraz utworzy ci się nowy artifact którego nazwa to będzie coś w stylu DropPlugin:jar ja to zostawiam, ale można oczywiście zmienić. 

W output directory bedzie lokacja w której utworzy się ostetnie wasz plik.jar

teraz klikacie ok oraz udajecie sie do głownej klasy pluginu

będąc w klasie wybieracie z samej góry Build oraz Build Artifacts

 

3156214928623041555313.png

 

wyskoczy wam okienko, tam wybieracie stworzony wcześniej przez was artifact oraz build

 

9165014928624141555313.png

 

gotowe wasz plik.jar stworzył się w wczesniej podanej lokacji w output directory

Opublikowano

Sweet mother of Jesus. Składam pokłony za ten poradnik i rezerwuję miejsce, będę edytował z komentarzami ^^

 

Edit:

  • Typo: Natomiast project locatio njest
  • Kawałek dalej popraw to na IdeaProjects
  • Zazwyczaj nazwa artefaktu pisana jest małymi literami (osobiście zalecam)
  • Dodawanie bukkita i spigot-api to rak. Tylko spigot-api.
  • Obecnie aby używać CraftBukkita (i NMS) można zamiast spigot-api dać import "spigot". Aby skompilować inną wersję spigota od 1.8 możemy użyć BuildTools, bo wszystko odrazu wskakuje do lokalnego repozytorium. Dla wcześniejszych wersji klonujemy z gita, checkoutujemy dany commit i kompilujemy mavenem z powłoki.
  • Kod sobie wyśrodkowałeś :f W przypadku otwartoźródłowych bibliotek zalecam fork i port na Mavena + dodanie do swojego publicznego repozytorium zamiast wrzucania jarów w lib/
  • Budowanie jarów które przedstawiłeś jest niezbyt związane z samym Mavenem. Sposób, który przedstawiłeś jest szybszy, ale można też przy pomocy zakładki Maven wykonywać wszystkie dostępne taski. Jest to niewygodne jeśli ma się serwer sprzężony z IDE.

Jeśli chodzi o Mavena w shellu, to wystarczy wejść w katalog projektu (w którym znajduje się plik pom.xml) i wykonać komendę "mvn install" (potem ewentualnie "mvn clean install"). Jeśli projekt jest poprawnie skonfigurowany uzyskamy po chwili piękny napis:

2017-04-22-142920_1505x219_scrot.png

 

Ogólnie poradnik fajny, miło by było jakbyś rozwinął go o jakieś ciekawsze aspekty niż absolutne podstawy podstaw.

Dodaj mój nick do posta jeśli potrzebujesz pomocy | Piszę pluginy na zlecenie | Pomagam z Linuxem

newlogo.png

Opublikowano

Sweet mother of Jesus. Składam pokłony za ten poradnik i rezerwuję miejsce, będę edytował z komentarzami ^^

 

Edit:

  • Typo: Natomiast project locatio njest
  • Kawałek dalej popraw to na IdeaProjects
  • Zazwyczaj nazwa artefaktu pisana jest małymi literami (osobiście zalecam)
  • Dodawanie bukkita i spigot-api to rak. Tylko spigot-api.
  • Obecnie aby używać CraftBukkita (i NMS) można zamiast spigot-api dać import "spigot". Aby skompilować inną wersję spigota od 1.8 możemy użyć BuildTools, bo wszystko odrazu wskakuje do lokalnego repozytorium. Dla wcześniejszych wersji klonujemy z gita, checkoutujemy dany commit i kompilujemy mavenem z powłoki.
  • Kod sobie wyśrodkowałeś :f W przypadku otwartoźródłowych bibliotek zalecam fork i port na Mavena + dodanie do swojego publicznego repozytorium zamiast wrzucania jarów w lib/
  • Budowanie jarów które przedstawiłeś jest niezbyt związane z samym Mavenem. Sposób, który przedstawiłeś jest szybszy, ale można też przy pomocy zakładki Maven wykonywać wszystkie dostępne taski. Jest to niewygodne jeśli ma się serwer sprzężony z IDE.

Jeśli chodzi o Mavena w shellu, to wystarczy wejść w katalog projektu (w którym znajduje się plik pom.xml) i wykonać komendę "mvn install" (potem ewentualnie "mvn clean install"). Jeśli projekt jest poprawnie skonfigurowany uzyskamy po chwili piękny napis:

2017-04-22-142920_1505x219_scrot.png

 

Ogólnie poradnik fajny, miło by było jakbyś rozwinął go o jakieś ciekawsze aspekty niż absolutne podstawy podstaw.

1 - poprawione

2 - poprawione

3 - poprawione

4 - na wiki spigota są obydwa, więc tutaj również tak dałem

5 - to samo co w 4 wiki spigota mówi inaczej

6 - już poprawiłem to wyśrodkowanie kodu. to miał być jak najprostszy poradnik jutro gdy znajdę czas lub nawet już dziś postaram się cały przepisać i dodać także tą opcje

7 - postaram się to uwzględnić 

Opublikowano

Ty piszesz jak mówi wiki spigota, ja mówię jak jest ;) (i jestem tego w 100% pewien, ba, uważam to za prawidłowe praktyki)

Dodaj mój nick do posta jeśli potrzebujesz pomocy | Piszę pluginy na zlecenie | Pomagam z Linuxem

newlogo.png

Opublikowano

@1361622928-U485574.pngfdfdfdfdV
Pomimo błędów, to powinno być przypiętym tematem i świetna robota, ale pomijając to co napisał @MarcinWieczorek
Dodaje od siebie możliwe poprawki:
 
1. Warto dodać do mavena info o używanej wersji javy i kodowania plikow

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

bo inaczej IDE może zmienić langauge-level importując projekt.
 
2. Opisz może coś o możliwych rozwiązaniach kiedy danego .jar nie ma w repo mavena, czyli np instalacja ręczna do lokalnego repo, lub użycie pluginu maven-install by automatycznie dodawać do repo przy buildzie (przydatne przy publicznych)
 
3. Opisz wyszukiwanie artefaktów, np libek javy, lub pluginów, czyli dodawanie nowych repo i poprawne uzywanie googla czy tej fajnej strony do przeglądania central repo
 
4. jak już @MarcinWieczorek opisywał by używać mavena do buildowania, to dodaj info o

    <build>
        <defaultGoal>clean install</defaultGoal>
    </build>

Wtedy wygodniej wykonać podstawowego builda z poziomu intellij
1ez7FV3.png
Gdzie normlanie się to robi tak lub tak:
nJUs6xv.png
lub używając i/lub konfigurując swoje buildy
wL0RLNs.png
 
5. Dodaj info o używaniu zmiennych mavena w plugin.yml, tak że w plugin.yml robimy name: ${project.name} i tak samo dla version i czego tylko chcemy, tak samo o dodwaniu wlasnych zmiennych w <properties> i ich późniejszym używaniu, np do kontroli wersji spigota (ale to o properties już można olać by się za długie to zrobi, chyba że lepiej poukładasz temat.)

    <build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>
    </build>

 
6. No i można też wyjaśnić co to jest ten clean, install, package i inne.

1438614356923701010629.png

 

  • 4 tygodnie później...
  • 4 tygodnie później...
  • JimForce zmienił(a) tytuł na Wgrywanie pliki jar poprzez Maven

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...