2.1 maven-resources-plugin copysources plugin
நீங்கள் ஒரு இணைய பயன்பாட்டை உருவாக்குகிறீர்கள் என்றால், அதில் பல்வேறு ஆதாரங்கள் மட்டுமே இருக்கும். இவை ஜார் லைப்ரரிகள், ஜேஎஸ்பி சர்வ்லெட்டுகள், செட்டிங்ஸ் பைல்கள். html
நிச்சயமாக, இது , css
, js
, மற்றும் பல்வேறு படங்கள் போன்ற நிலையான கோப்புகளின் தொகுப்பாகும் .
இயல்பாக, ஒரு திட்டத்தை உருவாக்கும் போது, Maven உங்கள் எல்லா கோப்புகளையும் கோப்புறையிலிருந்து 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 maven-resources-plugin மூலம் வளங்களை வடிகட்டுதல்
செருகுநிரல் ஆதாரங்களை கோப்புகளின் வடிவத்தில் மட்டும் குறிப்பிட முடியாது, ஆனால் உடனடியாக அடைவுகள் வடிவில். மேலும், கோப்பகத்தில் ஒரு முகமூடியைச் சேர்க்கலாம், அதில் இருந்து எந்த கோப்புகள் இந்த ஆதாரத்தில் சேர்க்கப்படும் என்பதைக் குறிப்பிடுகிறது.
உதாரணமாக:
<resource>
<directory>src/main/resources/images</directory>
<includes>
<include>**/*.png</include>
</includes>
</resource>
முகமூடியாக இரண்டு நட்சத்திரக் குறியீடுகள் எத்தனை கோப்பகங்களைக் குறிக்கின்றன . மேலே உள்ள எடுத்துக்காட்டில், கோப்பகத்தில் உள்ள அனைத்து png கோப்புகளும் src/main/resources/images
(மற்றும் அதன் துணை அடைவுகள்) ஆதார தரவுகளாக எடுத்துக்கொள்ளப்படும்.
நீங்கள் சில கோப்புகளை விலக்க விரும்பினால், நீங்கள் பயன்படுத்தலாம் 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 source inclusion plugin
மற்றொரு பயனுள்ள செருகுநிரல் - maven-source-plugin
உங்கள் ஜாவா கோப்புகளின் மூலக் குறியீட்டை சட்டசபையில் சேர்க்க உங்களை அனுமதிக்கிறது. எதற்காக?
விஷயம் என்னவென்றால், வலை பயன்பாடுகளுக்கு மேலதிகமாக, மேவனைப் பயன்படுத்தி மிகப் பெரிய எண்ணிக்கையிலான நூலகங்கள் கூடியிருக்கின்றன. நிறைய ஜாவா ப்ராஜெக்ட்கள் ஓப்பன் சோர்ஸ் என்ற கருத்தைப் பின்பற்றுகின்றன மற்றும் ஜாவா சமூகத்திற்கு அவற்றின் சொந்த ஆதாரங்களுடன் விநியோகிக்கப்படுகின்றன.
உங்களுக்கு ஏன் தனி செருகுநிரல் தேவை? ஏன் உங்களால் மூலத்தை அப்படியே காப்பி செய்ய முடியாது?
முதலில், எந்தவொரு சிக்கலான திட்டத்திலும், ஆதாரங்களை பல இடங்களில் சேமிக்க முடியும்.
இரண்டாவதாக, xml விவரக்குறிப்புகளின் அடிப்படையில் மூலங்களின் தலைமுறை பெரும்பாலும் பயன்படுத்தப்படுகிறது, அத்தகைய ஆதாரங்களும் சட்டசபையில் சேர்க்கப்பட வேண்டும்.
மூன்றாவதாக, உங்கள் சட்டசபையில் குறிப்பாக ரகசிய கோப்புகளை சேர்க்க வேண்டாம் என்று நீங்கள் முடிவு செய்யலாம்.
maven-source-plugin plugin ஐப் பயன்படுத்துவதற்கான எடுத்துக்காட்டு:
<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 | ஓவர்ரைட் ஸ்னாப்ஷாட்கள் | ஸ்னாப்ஷாட் கொண்ட டெர்மினல் அல்லாத சார்புகளை மேலெழுத கொடியிடவும் |
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