மேவன் திட்டங்களில் பதிப்பை எளிதாக்குவதற்கு flatten-maven-plugin ஐப் பயன்படுத்திய அனுபவம்

எங்களுக்கு பற்றி

1C இல் நாங்கள் ஒரு தளத்தை மட்டும் உருவாக்கவில்லை 1C: எண்டர்பிரைஸ் மீது சி ++ и ஜாவா, ஆனால் ஜாவா பயன்பாடுகள் - குறிப்பாக புதிய வளர்ச்சி சூழல் நிறுவன மேம்பாட்டு கருவிகள் எக்லிப்ஸ் மற்றும் தளத்துடன் ஆழமாக ஒருங்கிணைக்கப்பட்ட மெசஞ்சர் சர்வர் அடிப்படையில் - தொடர்பு அமைப்புகள்.

நுழைவு

ஜாவா பயன்பாடுகளுக்கான கட்டுமான அமைப்பாக நாங்கள் பெரும்பாலும் மேவனைப் பயன்படுத்துகிறோம், மேலும் இந்த சிறு கட்டுரையில் வளர்ச்சியை ஒழுங்கமைக்கும் செயல்பாட்டில் நாம் எதிர்கொள்ள வேண்டிய சிக்கல்களில் ஒன்றைப் பற்றி பேச விரும்புகிறோம், மேலும் இதை சமாளிக்க எங்களை அனுமதித்த அணுகுமுறை பற்றி. பிரச்சனை.

முன்நிபந்தனைகள் மற்றும் பணிப்பாய்வு

எங்கள் மேவன் திட்டங்களின் வளர்ச்சியின் பிரத்தியேகங்கள் காரணமாக, நாங்கள் நிறைய தொகுதிகள், சார்புகள் மற்றும் குழந்தை திட்டங்களைப் பயன்படுத்துகிறோம். ஒரு மரத்தில் உள்ள போம் கோப்புகளின் எண்ணிக்கை பத்து அல்லது நூற்றுக்கணக்கில் இருக்கலாம்.

மேவன் திட்டங்களில் பதிப்பை எளிதாக்குவதற்கு flatten-maven-plugin ஐப் பயன்படுத்திய அனுபவம்

இது தோன்றும்: பெரிய விஷயமில்லை, அவர்கள் அதை ஒரு முறை உருவாக்கி அதை மறந்துவிட்டார்கள். நீங்கள் எல்லா கோப்புகளிலும் ஒரே நேரத்தில் ஏதாவது மாற்றவோ அல்லது சேர்க்கவோ விரும்பினால், எடிட்டர்கள் மற்றும் ஐடிஇகளில் நிறைய வசதியான கருவிகள் உள்ளன. pom.xml க்கு மிகவும் பொதுவான வழக்கமான மாற்றம் என்ன? திட்ட பதிப்புகள் மற்றும் சார்புகளில் மாற்றங்கள் ஏற்படும் என்று நாங்கள் நம்புகிறோம். ஒருவேளை யாராவது இதைப் பற்றி வாதிட விரும்புவார்கள், ஆனால் இதுதான் எங்களின் நிலைமை. காரணம், கர்னலுடன் சேர்ந்து, நாங்கள் ஒரே நேரத்தில் எங்கள் சொந்த நூலகங்கள் பலவற்றை உருவாக்குகிறோம், மேலும் உருவாக்க மற்றும் சோதனை முடிவுகளை நிலையான மறுஉருவாக்கம் செய்ய, ஸ்னாப்ஷாட்களின் பயன்பாடு எங்களுக்கு வசதியான அணுகுமுறையாகத் தெரியவில்லை. இந்த காரணத்திற்காக, ஒவ்வொரு கட்டமைப்பிலும் திட்டங்களில் பதிப்பு எண்ணை உயர்த்துவது அவசியம்.

மேலும், அவ்வப்போது, ​​ஒரு டெவலப்பர் ஒரு நூலகத்தின் தனது சொந்த கிளையை உருவாக்க வேண்டும் மற்றும் அனைத்து சார்புகளுக்கு எதிராகவும் அதன் செயல்பாட்டைச் சரிபார்க்க வேண்டும், அதற்காக அவர் அனைத்தின் பதிப்பையும் கைமுறையாக மாற்ற வேண்டும்.

ஆரம்ப தீர்வு

இதுபோன்ற அடிக்கடி மற்றும் பல பதிப்பு மாற்றங்களுடன், CI க்குள் செயல்முறையை எளிதாக்கவும் தானியங்குபடுத்தவும் விரும்புகிறேன். இங்குதான் ஒரு வசதியான, நன்கு அறியப்பட்ட செருகுநிரல் மீட்புக்கு வருகிறது. பதிப்புகள்-மேவன்-சொருகி - அதை இணைத்து துவக்கவும்

mvn -N பதிப்புகள்:செட் -DnewVersion=2.0.1

மற்றும் மேவன் எல்லாவற்றையும் சரியாகச் செய்வார்: இது மேலிருந்து கீழாக படிநிலையில் இயங்கும், எல்லா பதிப்புகளையும் மாற்றும் - அழகு! இப்போது எஞ்சியிருப்பது இழுக்க கோரிக்கையை எழுப்புவது மட்டுமே, சக ஊழியர்கள் மாற்றங்களை மதிப்பாய்வு செய்வார்கள், மேலும் நீங்கள் விரைவாக உடற்பகுதியில் சேரலாம். சீக்கிரமா? அது எப்படி இருந்தாலும் பரவாயில்லை. இரண்டு நூறு pom.xml மதிப்பாய்வுக்காக, இது குறியீட்டைக் கணக்கிடவில்லை. கூடுதலாக, இவ்வளவு பெரிய எண்ணிக்கையிலான மாற்றப்பட்ட கோப்புகளுடன் ஒன்றிணைக்கும் முரண்பாடுகளிலிருந்து யாரும் பாதுகாப்பாக இல்லை. CI செயல்பாட்டில், செயல்பாட்டில் ஏற்படும் மாற்றங்களுடன் பதிப்பு மாற்றங்கள் தானாகவே நிகழ்கின்றன, எப்படியோ தனித்தனியாக இல்லை என்பதை இங்கே கவனத்தில் கொள்ள வேண்டும்.

புதிய அம்சங்கள்

சிறிது நேரம் நாங்கள் அமைதியாகி, எங்களை ராஜினாமா செய்துவிட்டு, தோழர்கள் வரை நாங்கள் அப்படித்தான் வாழ்ந்தோம் மேவன் அப்பாச்சி திட்டம் Maven, பதிப்பு 3.5.0-beta-1 இல் தொடங்கி, பதிப்புகளின் "பிளேஸ்ஹோல்டர்கள்" என்று அழைக்கப்படுவதற்கான ஆதரவைக் கொண்டிருக்கவில்லை. இந்த மாற்றுகளின் சாராம்சம் அதுதான் pom.xml திட்டப் பதிப்பின் குறிப்பிட்ட குறிப்பிற்குப் பதிலாக, மாறிகள் பயன்படுத்தப்படுகின்றன ${revision}, ${sha1} и ${மாஞ்சலிஸ்ட்}. இந்த பண்புகளின் மதிப்புகள் தனிமத்தில் அமைக்கப்பட்டுள்ளனபண்புகள்>, அல்லது ஒரு அமைப்பு சொத்து மூலம் அவற்றை வரையறுக்கலாம்

mvn -Drevision=2.0.0 சுத்தமான தொகுப்பு

கணினி சொத்து மதிப்புகள் வரையறுக்கப்பட்ட மதிப்புகளை விட முன்னுரிமை பெறுகின்றனபண்புகள்>.

பெற்றோர்

  4.0.0
  
    org.apache
    அப்பாச்சி
    18
  
  org.apache.maven.ci
  ci-பெற்றோர்
  முதல் சிஐ நட்பு
  ${revision}${sha1}${changelist}
  ...
  
    1.3.1
    -ஸ்னாப்ஷாட்
    
  


வழித்தோன்றல்

  4.0.0
  
    org.apache.maven.ci
    ci-பெற்றோர்
    ${revision}${sha1}${changelist}
  
  org.apache.maven.ci
  ci-குழந்தை
   ...

நீங்கள் பதிப்பு 2.0.0-SNAPSHOT ஐ உருவாக்க விரும்பினால், பயன்படுத்தவும்

    mvn -Drevision=2.0.0 சுத்தமான தொகுப்பு

நீங்கள் ஒரு வெளியீட்டை உருவாக்க விரும்பினால், ஸ்னாப்ஷாட்டை மீட்டமைக்கவும்

    mvn -Dchangelist= சுத்தமான தொகுப்பு

*மேலே உள்ள உதாரணங்கள் இதிலிருந்து எடுக்கப்பட்டவை கட்டுரைகள் மேவன் அப்பாச்சி திட்ட இணையதளத்தில்

கடுமையான யதார்த்தம்

எல்லாம் நன்றாகவும் ஆரோக்கியமாகவும் இருக்கிறது, திருப்தி உணர்வை உணர வேண்டிய நேரம் இது, ஆனால் இல்லை. இந்த முறை நிறுவலுக்கும் வரிசைப்படுத்துவதற்கும் வேலை செய்யாது என்று மாறிவிடும், ஏனெனில் இது களஞ்சியத்தில் வெளியிடப்பட்ட கலைப்பொருட்களின் விளக்கங்களில் மாற்றப்படாது. ${revision} அதன் அர்த்தம் மற்றும் மேவன் இனி அது என்னவென்று புரிந்து கொள்ள மாட்டார்.


    org.apache
    அப்பாச்சி
    ${revision}

ஒரு சுரங்கப்பாதையின் முடிவில் ஒரு விளக்கு

பிரச்சினைக்கு தீர்வு காண வேண்டும். நிலைமையைக் காப்பாற்றியிருக்கலாம் flatten-maven-plugin. இந்த செருகுநிரல் போமில் உள்ள அனைத்து மாறிகளையும் தீர்க்கிறது, ஆனால் அதே நேரத்தில் அசெம்பிளி செய்யும் போது மட்டுமே தேவைப்படும் மற்றும் பிற திட்டங்களுக்கு வெளியிடப்பட்ட கலைப்பொருட்களை இறக்குமதி செய்யும் போது தேவைப்படாத பல தகவல்களை வெட்டுகிறது. சொருகி அனைத்து பெற்றோர்-குழந்தை சார்புகளையும் "நேராக்குகிறது", இதன் விளைவாக, உங்களுக்கு தேவையான அனைத்தையும் உள்ளடக்கிய ஒரு பிளாட் போம் கிடைக்கும். சிரமம் என்னவென்றால், இது அதிகப்படியான "கூடுதல்" களை வெட்டுகிறது, இது எங்களுக்கு பொருந்தாது. இந்த செருகுநிரலின் மேம்பாடு குறித்த தகவல்களைப் படித்த பிறகு, பிரபஞ்சத்தில் நாம் மட்டும் இல்லை என்பது தெரியவந்தது, ஆகஸ்ட் 2018 இல், அதைச் சாத்தியமாக்கும் விருப்பத்துடன் செருகுநிரல் களஞ்சியத்தில் கிதுப்பில் ஒரு இழு-கோரிக்கை உருவாக்கப்பட்டது. pom.xml ஐ எப்படி "கெடுவது" என்பதை சொந்தமாக தீர்மானிக்க. டெவலப்பர்கள் பாதிக்கப்பட்டவர்களின் குரல்களைக் கேட்டனர், ஏற்கனவே டிசம்பரில், புதிய பதிப்பு 1.1.0 இன் வெளியீட்டில், ஒரு புதிய பயன்முறை, தீர்க்கமான சிஃப்ரெண்ட்லீஸ்ஒன்லி, பிளாட்டென்-மேவன்-சொருகியில் தோன்றியது, இது முன்னெப்போதையும் விட மிகவும் பொருத்தமானது - அது வெளியேறுகிறது. உறுப்பு தவிர, pom.xml மற்றும் அனுமதிக்கிறது ${revision}, ${sha1} и ${மாஞ்சலிஸ்ட்}.

திட்டத்தில் ஒரு செருகுநிரலைச் சேர்த்தல்


  
    org.codehaus.mojo
    flatten-maven-plugin
    1.1.0
    
      உண்மை
      தீர்வு CiFriendlies மட்டும்
    
    
      
        தட்டையாக்கு
        செயல்முறை வளங்கள்
        
          தட்டையாக்கு
        
      
      
        தட்டை.சுத்தம்
        சுத்தமான
        
          சுத்தமான
        
      
    
  

முடிந்தது!

மகிழ்ச்சிகரமான முடிவு

இனிமேல், முழுத் திட்டத்தின் பதிப்பையும் மாற்றுவதற்கும், அதைப் பற்றி எல்லா சார்புகளுக்கும் தெரியப்படுத்துவதற்கும், நாம் உறுப்பைத் திருத்த வேண்டும்.திருத்தம்> வெறும் வேரில் pom.xml. ஒரே மாற்றத்துடன் இந்த கோப்புகளில் நூறு அல்லது இரண்டு இல்லை, ஆனால் ஒன்று. சரி, பயன்படுத்த வேண்டிய அவசியமில்லை பதிப்புகள்-மேவன்-சொருகி.

ஆதாரம்: www.habr.com

கருத்தைச் சேர்