CodeGym /Java tanfolyam / /Fájlok kezelése Maven projekt felépítése közben

Fájlok kezelése Maven projekt felépítése közben

Szint , Lecke
Elérhető

2.1 maven-resources-plugin erőforrások másolása beépülő modul

Ha webalkalmazást épít, akkor csak egy csomó különféle erőforrás lesz benne. Ezek jar könyvtárak, jsp szervletek, beállítási fájlok. És természetesen ez egy csomó statikus fájl, például html, css, js, valamint különféle képek.

Alapértelmezés szerint egy projekt felépítésekor a Maven egyszerűen átmásolja az összes fájlt a mappából src/main/resourcesa célkönyvtárba. Ha módosítani szeretné ezt a viselkedést, akkor a beépülő modul segíteni fog maven-resources-plugin.

Mintakód egy ilyen bővítményhez:

<plugin>
    <artifactId>maven-resources-plugin</artifactId>
    <version>2.6</version>
    <executions>
        <execution>
            <id>copy-resources</id>
            <phase>validate</phase>
            <goals>
                <goal>copy-resources</goal>
            </goals>
            <configuration>
                <outputDirectory>
                   ${basedir}/target/resources
                </outputDirectory>
                <resources>
                    <resource>  instructions for copying a resource 1 </resource>
                    <resource>  instructions for copying a resource 2 </resource>
                    <resource>  instructions for copying a resource N </resource>
                </resources>
            </configuration>
        </execution>
    </executions>
</plugin>

Ez a beépülő modul az érvényesítési fázisban kerül meghívásra. A címke segítségével <outputDirectory>beállíthatja azt a könyvtárat, ahová a beépülő modul másolja a -ban megadott erőforrásokat <resources>. És itt tud teljes erejével kibontakozni a plugin.

2.2 Erőforrások szűrése a maven-resources-plugin segítségével

A beépülő modulok erőforrásai nem csak fájlok, hanem azonnal könyvtárak formájában is megadhatók. Ezenkívül egy maszk is hozzáadható a könyvtárhoz, amely meghatározza, hogy mely fájlok kerüljenek bele ebbe az erőforrásba.

Példa:


            <resource>
                <directory>src/main/resources/images</directory>
                <includes>
                     <include>**/*.png</include>
                </includes>
            </resource>

Két csillag maszkként tetszőleges számú könyvtárat jelöl . A fenti példában a könyvtárban src/main/resources/images(és annak alkönyvtáraiban) található összes png fájl erőforrásadatként fog működni.

Ha ki szeretne zárni néhány fájlt, használhatja a exclude. Példa:

<resource>
    <directory>src/main/resources/images</directory>
    <includes>
        <include>**/*.png</include>
    </includes>
    <excludes>
         <exclude>old/*.png</exclude>
    </excludes>
</resource>

A címkék alkalmazása szekvenciálisan történik: először az include fájlokban megadott include fájlok kerülnek az erőforráshoz, majd a kizárt fájlok kikerülnek ebből a listából.

De ez még nem minden. A beépülő modul bele tud nézni a fájlokba (természetesen ha szövegesek). És például adja hozzá application.propertiesaz összeállítás szükséges verzióját a fájlhoz. Ahhoz, hogy a bővítmény feldolgozza a fájl tartalmát, meg kell adnia a paramétert <filtering>true</filtering>.

Példa:

<resource>
    <directory>src/main/resources/properties</directory>
    <filtering>true</filtering>
    <includes>
        <include>**/*. properties </include>
    </includes>
</resource>

A bővítményről további részletek a következő linken találhatók: https://maven.apache.org/plugins/maven-resources-plugin/examples/filter.html

2.3 maven-source-plugin forrásbefoglalási bővítmény

Egy másik hasznos bővítmény - maven-source-pluginlehetővé teszi, hogy a java fájlok forráskódját belefoglalja az összeállításba. Miért?

A helyzet az, hogy a webes alkalmazások mellett nagyon sok könyvtárat állítanak össze a Maven segítségével. Sok Java projekt követi a nyílt forráskód koncepcióját, és a Java közösség számára saját forrásokkal terjesztik.

Miért kell külön plugin? Miért nem tudod bemásolni a forrást és kész?

Először is, minden összetett projektben a források több helyen tárolhatók.

Másodszor, gyakran használják a források xml specifikációkon alapuló generálását, ezeket a forrásokat is bele kell foglalni az összeállításba.

Harmadszor pedig dönthet úgy, hogy nem vesz fel semmilyen különösen titkos fájlt az összeállításba.

Példa a maven-source-plugin beépülő modul használatára:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-source-plugin</artifactId>
    <version>2.2.1</version>
    <executions>
        <execution>
            <id>attach-sources</id>
            <phase>verify</phase>
            <goals>
                <goal>jar</goal>
            </goals>
        </execution>
    </executions>
</plugin>

2.4 maven-dependency-plugin dependency copy plugin

Előfordulhat, hogy a függőségek (könyvtárak) okosan másolására is szükség van egy projekt felépítése során. Ehhez egy plugint használnak maven-dependency-plugin.

Példa:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <version>2.5.1</version>
    <configuration>
        <outputDirectory>
            ${project.build.directory}/lib/
        </outputDirectory>
    </configuration>
    <executions>
        <execution>
            <id>copy-dependencies</id>
            <phase>package</phase>
            <goals>
                <goal>copy-dependencies</goal>
            </goals>
        </execution>
    </executions>
</plugin>

Ebben a példában a beépülő modul alapértelmezett viselkedése az írás - a könyvtárak másolása a ${project.build.directory}/lib.

A végrehajtási szakasz kimondja, hogy a beépülő modult az építési fázisban hívják meg - csomag, cél - másolás-függőségek.

Általánosságban elmondható, hogy ennek a bővítménynek meglehetősen nagy céljai vannak, itt vannak a legnépszerűbbek:

1 függőség: elemezni függőségi elemzés (használt, nem használt, meghatározott, nem meghatározott)
2 dependency:analyze-duplicate a duplikált függőségek azonosítása
3 dependency:resolve minden függőség feloldása (definíciója).
4 dependency:resolve-plugin az összes plugin engedélye (definíciója).
5 függőség:fa a függőségi fa megjelenítése

A konfigurációs részben további paramétereket is beállíthat:

1 kimeneti könyvtár Könyvtár, ahová a függőségek másolásra kerülnek
2 overWriteReleases Jelölje meg a függőségek felülírásához kiadás létrehozásakor
3 overWriteSnapshots Jelölje meg a SNAPSHOT-tal rendelkező nem terminális függőségek felülírásához
4 overWriteIfNewer Jelölje meg a könyvtárak felülírásához újabb verziókkal

Példa:


<configuration>
    <outputDirectory>
         ${project.build.directory}/lib/
    </outputDirectory>
    <overWriteReleases>false</overWriteReleases>
    <overWriteSnapshots>false</overWriteSnapshots>
    <overWriteIfNewer>true</overWriteIfNewer>
 </configuration>

Alapértelmezés szerint <overWriteReleases>, és <overWriteSnapshots>hamis, mert <overWriteIfNewer>igaz.

Hozzászólások
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION