Wstęp
Poniżej opisane zostały 2 sposoby tworzenia projektu wtyczki:
- ręcznie
- maven archetype
Tworzenie projektu z archetypu jest szybsze i wygodniejsze. Musimy jedynie uzupełnić wymagane parametry takie jak nazwa, klucz etc.
Tworzenie projektu od podstaw
Każda tworzona wtyczka nie może współdzielić jednego pakietu z inną wtyczką.
- Tworzymy nowy projekt Maven (File -> New -> Maven Project).
- Zaznaczamy opcję Create a simple project (skip archetype selection) i klikamy Next
Uzupełniamy informacje o projekcie i tworzymy projekt
Parametry projektu
Projekt powinien być stworzony zgodnie z konwencją:
- groupId: dla wtyczek przyjęto com.suncode.plugin
- artifactId: identyfikator wtyczki (musi być uniwersalny)
- version: wersja wtyczki może być niezależna od wersji systemu docelowego
- packaging: musi zostać ustawione na bundle (wartości nie ma na liście)
Dodajemy niezbędny plik deskryptora wtyczki suncode-plugin.xml do katalogu src/main/resources:
suncode-plugin.xml<?xml version="1.0" encoding="UTF-8"?> <plugin key="${project.groupId}-${project.artifactId}" name="Tutorial Plugin"> <plugin-details> <description> <localized language="en">Description</localized> <localized language="pl">Opis</localized> </description> <author>Suncode</author> </plugin-details> <!-- I18N --> <i18n key="i18n-bundle" location="locale/messages" /> <!-- Web MVC --> <web-mvc key="mvc" /> </plugin>
Plik suncode-plugin.xml jest filtrowany przez Maven'a. Oznacza to, że w miejsca właściwości ${...} dynamicznie wstawiana jest zawartość tych właściwości.
Zamiast ${project.groupId}-${project.artifactId} możemy wpisać stały identyfikator wtyczki. Wpisanie ${project.groupId}-${project.artifactId} skutkuje dynamicznie tworzonym identyfikatorem z właściwości groupId i artifactId.
- Dodajemy plik tłumaczeń messages.properties do katalogu src/main/resources/locale
Ostateczna struktura projektu powinna wyglądać następująco:
Tworzenie projektu wykorzystując gotowy archetyp
Przed stworzeniem projektu należy skonfigurować katalogi archetypów. W tym celu otwieramy Window->Preferences oraz dodajemy Remote Catalog z adresem URL repozytorium Suncode: http://192.168.1.51:8081/nexus/content/groups/public/
- Tworzymy nowy projekt Maven (File -> New -> Maven Project).
- Zostawiamy opcję Create a simple project (skip archetype selection) odzaznaczoną
- Wybieramy interesujący nas archetyp tak jak na rysunku:
Następnie uzupełniamy wszystkie wymagane informacje:
Właściwości
Opis wszystkich właściwości:
- plusworkflowVersion: docelowa wersja systemu PlusWorkflow
- name: nazwa wtyczki
- author: twórca wtyczki
- descriptionPL: opis wtyczki w języku polskim
- descriptionEN: opis wtyczki w języku angielskim
Stworzony projekt bo zbudowaniu może już być zainstalowany w systemie jako wtyczka. Deskryptor tej wtyczki wygląda następująco:
suncode-plugin.xml<?xml version="1.0" encoding="UTF-8"?> <plugin key="com.suncode.plugin-tutorial" name="Tutorial Plugin"> <plugin-details> <description> <localized language="en">Description</localized> <localized language="pl">Opis</localized> </description> <author>Suncode</author> </plugin-details> <!-- I18N --> <i18n key="i18n-bundle" location="locale/messages" /> <!-- Web MVC --> <web-mvc key="mvc" /> </plugin>
Ostateczna struktura projektu powinna wyglądać następująco:
Wstęp
Poniżej opisane zostały 2 sposoby tworzenia projektu wtyczki:
- ręcznie
- maven archetype
Tworzenie projektu z archetypu jest szybsze i wygodniejsze. Musimy jedynie uzupełnić wymagane parametry takie jak nazwa, klucz etc.
Tworzenie projektu od podstaw
Każda tworzona wtyczka nie może współdzielić jednego pakietu z inną wtyczką.
- Tworzymy nowy projekt Maven (File -> New -> Maven Project).
- Zaznaczamy opcję Create a simple project (skip archetype selection) i klikamy Next
Uzupełniamy informacje o projekcie i tworzymy projekt
Parametry projektu
Projekt powinien być stworzony zgodnie z konwencją:
- groupId: dla wtyczek przyjęto com.suncode.plugin
- artifactId: identyfikator wtyczki (musi być uniwersalny)
- version: wersja wtyczki może być niezależna od wersji systemu docelowego
- packaging: musi zostać ustawione na bundle (wartości nie ma na liście)
Dodajemy niezbędny plik deskryptora wtyczki suncode-plugin.xml do katalogu src/main/resources:
suncode-plugin.xml<?xml version="1.0" encoding="UTF-8"?> <plugin key="${project.groupId}-${project.artifactId}" name="Tutorial Plugin"> <plugin-details> <description> <localized language="en">Description</localized> <localized language="pl">Opis</localized> </description> <author>Suncode</author> </plugin-details> <!-- I18N --> <i18n key="i18n-bundle" location="locale/messages" /> <!-- Web MVC --> <web-mvc key="mvc" /> </plugin>
Plik suncode-plugin.xml jest filtrowany przez Maven'a. Oznacza to, że w miejsca właściwości ${...} dynamicznie wstawiana jest zawartość tych właściwości.
Zamiast ${project.groupId}-${project.artifactId} możemy wpisać stały identyfikator wtyczki. Wpisanie ${project.groupId}-${project.artifactId} skutkuje dynamicznie tworzonym identyfikatorem z właściwości groupId i artifactId.
- Dodajemy plik tłumaczeń messages.properties do katalogu src/main/resources/locale
Ostateczna struktura projektu powinna wyglądać następująco:
Tworzenie projektu wykorzystując gotowy archetyp
Przed stworzeniem projektu należy skonfigurować katalogi archetypów. W tym celu otwieramy Window->Preferences oraz dodajemy Remote Catalog z adresem URL repozytorium Suncode: http://192.168.1.51:8081/nexus/content/groups/public/
- Tworzymy nowy projekt Maven (File -> New -> Maven Project).
- Zostawiamy opcję Create a simple project (skip archetype selection) odzaznaczoną
- Wybieramy interesujący nas archetyp tak jak na rysunku:
Następnie uzupełniamy wszystkie wymagane informacje:
Właściwości
Opis wszystkich właściwości:
- plusworkflowVersion: docelowa wersja systemu PlusWorkflow
- name: nazwa wtyczki
- author: twórca wtyczki
- descriptionPL: opis wtyczki w języku polskim
- descriptionEN: opis wtyczki w języku angielskim
Stworzony projekt bo zbudowaniu może już być zainstalowany w systemie jako wtyczka. Deskryptor tej wtyczki wygląda następująco:
suncode-plugin.xml<?xml version="1.0" encoding="UTF-8"?> <plugin key="com.suncode.plugin-tutorial" name="Tutorial Plugin"> <plugin-details> <description> <localized language="en">Description</localized> <localized language="pl">Opis</localized> </description> <author>Suncode</author> </plugin-details> <!-- I18N --> <i18n key="i18n-bundle" location="locale/messages" /> <!-- Web MVC --> <web-mvc key="mvc" /> </plugin>
Ostateczna struktura projektu powinna wyglądać następująco: