Kurs Java

Maven - Asystent

Asystent to ktoś kto pomaga w realizacji codziennych zadań, najczęściej w pracy. W tym samym celu stworzyliśmy dla Was asystenta do spraw związanych z Mavenem, który odpowiada na najczęściej pojawiające się w tym obszarze pytania. Pamięta on za Was to co jest bardzo istotne, ale ze względu na swoją naturę (nie używamy tego codziennie) jest bardzo poddatne na zapomnienie. Polecamy mieć tego asystenta zawsze w pobliżu!

Pytania i odpowiedzi...

Jak uruchomić Mavena w trybie debug?
mvn -X
Jak sprawdzić wersję i miejsce instalacji Mavena oraz Javy, z której on korzysta?
mvn -v
Jak zbudować i podmienić artefakt w katalogu target?
mvn clean package
Jak zbudować i podmienić artefakt w lokalnym repozytorium?
mvn clean install
Jak zbudować i podmienić artefakt w lokalnym repozytorium z pominięciem wykonania testów?
mvn clean install -DskipTests=true
Jak odpalić dowolny test (nazwijmy go XTest) z konkretnego pliku (powiedzmy XFileTest) ?
mvn -Dtest=XFileTest#XTest test
Jak zdefiniować profil konfiguracyjny?
W pom.xml dodajemy tag profiles:
<profiles>
    <profile>
        <id>dev</id>
        <build>
            ...
        </build>
    </profile>
</profiles>
Jak uruchomić build w powyższym profilu?
mvn -Drun.profiles=dev
Jak zdefiniować profil konfiguracyjny z automatycznym deploymentem na Tomcata?
W pom.xml dodajemy tag profiles zawierający plugin tomcat7-maven-plugin:
<profiles>
    <profile>
        <id>dev</id>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.tomcat.maven</groupId>
                    <artifactId>tomcat7-maven-plugin</artifactId>
                    <version>2.1</version>
                    <configuration>
                        <url>http://localhost:50081/manager/text</url>
                        <!-- Configured in mvn settings.xml -->
                        <server>devtomcat</server>
                        <path>/appaadmin##${project.version}</path>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </profile>
</profiles>
Jak poinformować Mavena, że podczas danego builda ma korzystać z dedykowanego pliku settings.xml umieszczonego w ścieżce X?
mvn -s X/settings.xml
Jak zmienić nazwę artefaktu z domyślnego schematu <artifactId>-<version>? na własną nazwę
W pom.xml w tagu build dodajemy tag finalName:
<build>
    <finalName>appa-admin</finalName>
    ...
</build>
Jakie wyróżniamy i jak ustawiamy zakresy artefaktów?
W pom.xml w tagu dependency dodajemy jeden z poniższych tagów scope:
<scope>compile</scope> - zakres domyślny, artefakt jest dostępny wszędzie, także w fazie kompilacji
<scope>provided</scope> - artefakt jest dostępny wszędzie poza ostateczną wersją deployowaną na serwer 
<scope>runtime</scope> - artefakt jest dostępny wszędzie - poza fazą kompilacji oraz poza ostateczną wersją deployowaną na serwer
<scope>test</scope> - artefakt jest dostępny jedynie w trakcie kompilacji testów oraz w fazie uruchamiania
<scope>system</scope> - artefakt jest dostępny podobnie jak provided, a udostępniamy go przez podanie ścieżki w systemie plików
<scope>import</scope> - artefakt współpracuje z sekcjami dependencyManagement
<dependencies>
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>3.0</version>
        <scope>provided</scope>
    </dependency>
    ...
</dependencies>
Jakie wyróżniamy typy paczek i jak je ustawiamy?
W pom.xml w ramach taga project dodajemy tag packaging, który może przyjąć jedną z wartości z tabeli pod listingiem:
    <modelVersion>4.0.0</modelVersion>  
    <groupId>com.javappa</groupId>
    <artifactId>appaadmin</artifactId>
    <version>1.0.0</version>
    <name>AppaAdmin</name>
    <description>AppaAdmin</description>
    <packaging>war</packaging>
Nazwa taga Znaczenie
<packaging>pom</packaging>
projekt nie posiada kodu i zarządza jedynie zależnościami - stosowany przy architekturze
parent-child wielu projektów składających się na jedną całość
<packaging>jar</packaging>
domyślny typ paczkowania tworzący bibliotekę, którą możemy podpiąć jako zależność do
innego artefaktu
<packaging>maven-plugin</packaging>
tworzy paczkę z pluginem Mavena
<packaging>EJB</packaging>
tworzy paczkę w postaci gotowego komponentu ejb
<packaging>war</packaging>
tworzy paczkę będącą aplikacją webową, która może zostać zdeployowana w kontenerze
aplikacji web (np. Tomcat), albo na serwerze aplikacyjnym; używany przez aplikację StartAPPa
<packaging>ear</packaging>
tworzy aplikację typu Enterprise, która może zostać zdeployowana na serwerze aplikacyjnym
Jakie wyróżniamy konwencje nazewnicze wersji artefaktu?
W pom.xml w tagu version podajemy numer wersji, do którego często dodajemy postfix (poprzedzony jeszcze myślnikiem):
SNAPSHOT - postfix używany w trakcie rozwoju (developmentu aplikacji) - nie stosujemy go wypuszczając kod na produkcję
M1 - milestone candidate (wersja przełomowa)
RC1 - release candidate (wersja kandydująca do wydania)
RELEASE - release (wersja wydana)
Final - release (ostateczna wersja produkcyjna)
Mapa umiejętności programisty Java

Stale się rozwijamy, a więc bądź na bieżąco!
Na ten adres będziemy przesyłać informacje o ważniejszych aktualizacjach, a także o nowych materiałach pojawiających się na stronie.
Polub nas na Facebooku:
Nasi partnerzy: stackshare
Javappa to również profesjonalne usługi programistyczne oparte o technologie JAVA. Jeśli chesz nawiązać z nami kontakt w celu uzyskania doradztwa bądź stworzenia aplikacji webowej powinieneś poznać nasze doświadczenia.
Kliknij O nas .


Pozycjonowanie stron: Grupa TENSE