2.1 maven-resources-plugin కాపీ వనరుల ప్లగ్ఇన్
మీరు వెబ్ అప్లికేషన్ను రూపొందిస్తున్నట్లయితే, మీరు దానిలో వివిధ వనరులను కలిగి ఉంటారు. ఇవి జార్ లైబ్రరీలు, jsp సర్వ్లెట్లు, సెట్టింగ్ల ఫైల్లు. html
మరియు వాస్తవానికి, ఇది , css
, js
, అలాగే వివిధ చిత్రాల వంటి స్టాటిక్ ఫైల్ల సమూహం .
డిఫాల్ట్గా, ప్రాజెక్ట్ను నిర్మించేటప్పుడు, మావెన్ మీ అన్ని ఫైల్లను ఫోల్డర్ నుండి src/main/resources
టార్గెట్ డైరెక్టరీకి కాపీ చేస్తుంది. మీరు ఈ ప్రవర్తనకు మార్పులు చేయాలనుకుంటే, ప్లగ్ఇన్ మీకు సహాయం చేస్తుంది maven-resources-plugin
.
అటువంటి ప్లగ్ఇన్ కోసం నమూనా కోడ్:
<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>
ఈ ప్లగ్ఇన్ ప్రమాణీకరణ దశలో పిలువబడుతుంది. ట్యాగ్ని ఉపయోగించి, <outputDirectory>
ప్లగిన్లో పేర్కొన్న వనరులను కాపీ చేయాల్సిన డైరెక్టరీని మీరు సెట్ చేయవచ్చు <resources>
. మరియు ఇక్కడే ప్లగ్ఇన్ తన శక్తితో విప్పుతుంది.
2.2 మావెన్-రిసోర్సెస్-ప్లగ్ఇన్తో వనరులను ఫిల్టర్ చేయడం
ప్లగిన్ వనరులను ఫైల్ల రూపంలో మాత్రమే కాకుండా, డైరెక్టరీల రూపంలో వెంటనే పేర్కొనవచ్చు. అంతేకాకుండా, డైరెక్టరీకి ఒక ముసుగుని జోడించవచ్చు, దాని నుండి ఏ ఫైల్లు ఈ వనరులో చేర్చబడతాయో నిర్దేశిస్తుంది.
ఉదాహరణ:
<resource>
<directory>src/main/resources/images</directory>
<includes>
<include>**/*.png</include>
</includes>
</resource>
ముసుగు వలె రెండు ఆస్టరిస్క్లు ఎన్ని డైరెక్టరీలనైనా సూచిస్తాయి . ఎగువ ఉదాహరణలో, డైరెక్టరీ src/main/resources/images
(మరియు దాని ఉప డైరెక్టరీలు)లో ఉన్న అన్ని png ఫైల్లు వనరుల డేటాగా తీసుకోబడతాయి.
మీరు కొన్ని ఫైళ్లను మినహాయించాలనుకుంటే, మీరు ఉపయోగించవచ్చు exclude
. ఉదాహరణ:
<resource>
<directory>src/main/resources/images</directory>
<includes>
<include>**/*.png</include>
</includes>
<excludes>
<exclude>old/*.png</exclude>
</excludes>
</resource>
ట్యాగ్లు వరుసగా వర్తింపజేయబడతాయి: ముందుగా, చేర్చబడిన ఫైల్లలో పేర్కొన్న చేర్చబడిన ఫైల్లు వనరుకు జోడించబడతాయి, ఆపై మినహాయించిన ఫైల్లు ఈ జాబితా నుండి మినహాయించబడతాయి.
అయితే అంతే కాదు. ప్లగ్ఇన్ ఫైల్ల లోపల చూడవచ్చు (అవి టెక్స్ట్ అయితే). మరియు, ఉదాహరణకు, application.properties
ఫైల్కు అసెంబ్లీ యొక్క అవసరమైన సంస్కరణను జోడించండి. ప్లగ్ఇన్ ఫైల్ యొక్క కంటెంట్లను ప్రాసెస్ చేయడానికి, మీరు పరామితిని పేర్కొనాలి <filtering>true</filtering>
.
ఉదాహరణ:
<resource>
<directory>src/main/resources/properties</directory>
<filtering>true</filtering>
<includes>
<include>**/*. properties </include>
</includes>
</resource>
ఈ ప్లగ్ఇన్ గురించి మరిన్ని వివరాలను లింక్లో చూడవచ్చు: https://maven.apache.org/plugins/maven-resources-plugin/examples/filter.html
2.3 మావెన్-సోర్స్-ప్లగిన్ సోర్స్ ఇన్క్లూజన్ ప్లగ్ఇన్
మరొక ఉపయోగకరమైన ప్లగ్ఇన్ - maven-source-plugin
అసెంబ్లీలో మీ జావా ఫైల్ల సోర్స్ కోడ్ను చేర్చడానికి మిమ్మల్ని అనుమతిస్తుంది. దేనికోసం?
విషయం ఏమిటంటే, వెబ్ అప్లికేషన్లతో పాటు, మావెన్ను ఉపయోగించి చాలా పెద్ద సంఖ్యలో లైబ్రరీలు సమావేశమయ్యాయి. చాలా జావా ప్రాజెక్ట్లు ఓపెన్ సోర్స్ భావనను అనుసరిస్తాయి మరియు వాటి స్వంత మూలాలతో జావా కమ్యూనిటీకి పంపిణీ చేయబడతాయి.
మీకు ప్రత్యేక ప్లగ్ఇన్ ఎందుకు అవసరం? మీరు మూలాన్ని ఎందుకు కాపీ చేయలేరు మరియు అంతే?
మొదట, ఏదైనా సంక్లిష్ట ప్రాజెక్ట్లో, మూలాలను అనేక ప్రదేశాలలో నిల్వ చేయవచ్చు.
రెండవది, xml స్పెసిఫికేషన్ల ఆధారంగా మూలాల ఉత్పత్తి తరచుగా ఉపయోగించబడుతుంది, అటువంటి మూలాలను కూడా అసెంబ్లీలో చేర్చాలి.
మరియు మూడవదిగా, మీ అసెంబ్లీలో ప్రత్యేకంగా రహస్య ఫైళ్లను చేర్చకూడదని మీరు నిర్ణయించుకోవచ్చు.
మావెన్-సోర్స్-ప్లగ్ఇన్ ప్లగ్ఇన్ను ఉపయోగించడం యొక్క ఉదాహరణ:
<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
.
ఉదాహరణ:
<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>
ఈ ఉదాహరణలో, ప్లగ్ఇన్ యొక్క డిఫాల్ట్ ప్రవర్తన వ్రాయబడింది - లైబ్రరీలను కాపీ చేయడం ${project.build.directory}/lib
.
ఎగ్జిక్యూషన్ విభాగం ప్లగ్ఇన్ బిల్డ్ ఫేజ్ - ప్యాకేజీ, గోల్ - కాపీ-డిపెండెన్స్ల సమయంలో పిలవబడుతుందని పేర్కొంది.
సాధారణంగా, ఈ ప్లగ్ఇన్ చాలా పెద్ద లక్ష్యాలను కలిగి ఉంది, ఇక్కడ అత్యంత ప్రజాదరణ పొందినవి ఉన్నాయి:
1 | ఆధారపడటం:విశ్లేషణ | డిపెండెన్సీ విశ్లేషణ (ఉపయోగించిన, ఉపయోగించని, పేర్కొనబడిన, పేర్కొనబడని) |
2 | ఆధారపడటం:విశ్లేషణ-నకిలీ | నకిలీ డిపెండెన్సీలను గుర్తించడం |
3 | ఆధారపడటం:పరిష్కారం | అన్ని డిపెండెన్సీల రిజల్యూషన్ (నిర్వచనం). |
4 | ఆధారపడటం:పరిష్కారం-ప్లగ్ఇన్ | అన్ని ప్లగిన్ల అనుమతి (నిర్వచనం). |
5 | ఆధారపడటం:చెట్టు | డిపెండెన్సీ ట్రీని ప్రదర్శిస్తోంది |
మీరు కాన్ఫిగరేషన్ విభాగంలో అదనపు పారామితులను కూడా సెట్ చేయవచ్చు:
1 | అవుట్పుట్ డైరెక్టరీ | డిపెండెన్సీలు కాపీ చేయబడే డైరెక్టరీ |
2 | overWriteReleases | విడుదలను సృష్టించేటప్పుడు డిపెండెన్సీలను ఓవర్రైట్ చేయడానికి ఫ్లాగ్ చేయండి |
3 | ఓవర్రైట్స్నాప్షాట్లు | SNAPSHOT కలిగి ఉన్న నాన్-టెర్మినల్ డిపెండెన్సీలను ఓవర్రైట్ చేయడానికి ఫ్లాగ్ చేయండి |
4 | overWriteIfNewer | కొత్త వెర్షన్లతో లైబ్రరీలను ఓవర్రైట్ చేయడానికి ఫ్లాగ్ చేయండి |
ఉదాహరణ:
<configuration>
<outputDirectory>
${project.build.directory}/lib/
</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
</configuration>
డిఫాల్ట్గా <overWriteReleases>
, మరియు <overWriteSnapshots>
తప్పు, ఎందుకంటే <overWriteIfNewer>
నిజం.
GO TO FULL VERSION