maven ව්‍යාපෘතිවල අනුවාදනය සරල කිරීමට flatten-maven-plugin භාවිතා කිරීමේ පළපුරුද්ද

О нас

1C දී අපි වේදිකාවක් පමණක් සංවර්ධනය කරමු 1C: ව්යවසාය මත C ++ и ජාවාස්ක්රිප්ට්, නමුත් ජාවා යෙදුම් - විශේෂයෙන්ම නව සංවර්ධන පරිසරය ව්යවසාය සංවර්ධන මෙවලම් Eclipse මත පදනම්ව සහ වේදිකාව සමඟ ගැඹුරින් ඒකාබද්ධ වූ පණිවිඩකරු සේවාදායකයක් - අන්තර් ක්රියාකාරී පද්ධති.

පිවිසුම්

අපි බොහෝ විට ජාවා යෙදුම් සඳහා ගොඩනැගීමේ පද්ධතියක් ලෙස maven භාවිතා කරන අතර, මෙම කෙටි ලිපියෙන් අපි සංවර්ධනය සංවිධානය කිරීමේ ක්‍රියාවලියේදී අපට මුහුණ දීමට සිදු වූ එක් ගැටළුවක් සහ මෙය ජය ගැනීමට අපට ඉඩ දුන් ප්‍රවේශය ගැන කතා කිරීමට කැමැත්තෙමු. ගැටලුව.

පූර්වාවශ්යතාවයන් සහ කාර්ය ප්රවාහය

අපගේ maven ව්‍යාපෘතිවල සංවර්ධනයේ විශේෂතා නිසා, අපි බොහෝ මොඩියුල, පරායත්තතා සහ ළමා ව්‍යාපෘති භාවිතා කරමු. එක් ගසක ඇති පොම් ලිපිගොනු ගණන දස දහස් ගණනක් හෝ සිය ගණනක් විය හැකිය.

maven ව්‍යාපෘතිවල අනුවාදනය සරල කිරීමට flatten-maven-plugin භාවිතා කිරීමේ පළපුරුද්ද

එය පෙනෙන්නේ: විශාල දෙයක් නැත, ඔවුන් එය වරක් නිර්මාණය කර එය අමතක කර ඇත. ඔබට එකවර සියලුම ගොනු වෙනස් කිරීමට හෝ එකතු කිරීමට අවශ්‍ය නම්, සංස්කාරක සහ IDE වල පහසු මෙවලම් රාශියක් ඇත. pom.xml වෙත වඩාත් පොදු නිතිපතා වෙනස් කිරීම කුමක්ද? ව්‍යාපෘති අනුවාදවල සහ පරායත්තතාවල වෙනස්කම් ඇති බව අපි විශ්වාස කරමු. සමහර විට යමෙකුට මේ සමඟ තර්ක කිරීමට අවශ්‍ය වනු ඇත, නමුත් මෙය හරියටම අප සමඟ තත්වයයි. හේතුව, කර්නලය සමඟින්, අපි අපගේම පුස්තකාල බොහොමයක් එකවර සංවර්ධනය කරමින් සිටින අතර, ප්‍රතිඵල ගොඩනැගීමේ සහ පරීක්ෂා කිරීමේ නිරන්තර ප්‍රතිනිෂ්පාදනය සඳහා, ස්නැප්ෂොට් භාවිතය අපට පහසු ප්‍රවේශයක් ලෙස නොපෙනේ. මෙම හේතුව නිසා, එක් එක් ගොඩනැගීම සමඟ ව්යාපෘතිවල අනුවාද අංකය ඉහළ නැංවීම අවශ්ය වේ.

එසේම, කලින් කලට, සංවර්ධකයෙකුට පුස්තකාලයක තමාගේම ශාඛාවක් ගොඩනඟා එහි ක්‍රියාකාරීත්වය සියලු පරායත්තතාවලට එරෙහිව පරීක්ෂා කිරීමට අවශ්‍ය වේ, ඒ සඳහා ඔහුට ඒවා සියල්ලේම අනුවාදය අතින් වෙනස් කිරීමට සිදුවේ.

මූලික විසඳුම

එවැනි නිරන්තර සහ බහු අනුවාද වෙනස්කම් සමඟ, මට CI තුළ ක්‍රියාවලිය සරල කිරීමට සහ ස්වයංක්‍රීය කිරීමට අවශ්‍යයි. පහසු, ප්‍රසිද්ධ ප්ලගිනයක් ගලවා ගැනීමට පැමිණෙන්නේ මෙහිදීය. versions-maven-plugin - එය සම්බන්ධ කර එය දියත් කරන්න

mvn -N අනුවාද: set -DnewVersion=2.0.1

සහ Maven සෑම දෙයක්ම කළ යුතු පරිදි කරනු ඇත: එය ධූරාවලිය හරහා ඉහළ සිට පහළට දිව යයි, සියලු අනුවාද වෙනුවට - අලංකාරය! දැන් ඉතිරිව ඇත්තේ ඇදීමේ ඉල්ලීමක් මතු කිරීම පමණි, සගයන් වෙනස්කම් සමාලෝචනය කරනු ඇත, ඔබට ඉක්මනින් කඳට සම්බන්ධ විය හැකිය. ඉක්මනින්? කොහොම උනත් කමක් නෑ. යුගල සියයක් pom.xml සමාලෝචනය සඳහා, සහ මෙය කේතය ගණන් නොගනී. මීට අමතරව, වෙනස් කළ ගොනු විශාල සංඛ්යාවක් සමඟ ඒකාබද්ධ ගැටුම් වලින් කිසිවෙකු ආරක්ෂිත නොවේ. CI ක්‍රියාවලියේදී, ක්‍රියාකාරීත්වයේ වෙනස්කම් සමඟ අනුවාද වෙනස්කම් ස්වයංක්‍රීයව සිදු වන අතර, කෙසේ හෝ වෙන වෙනම නොවන බව මෙහිදී සටහන් කළ යුතුය.

නව විශේෂාංග

ටික වේලාවක් අපි සන්සුන් වූ අතර, ඉල්ලා අස්වී, පිරිමි ළමයින් එනතුරු අපි එලෙස ජීවත් වුණෙමු Maven Apache ව්යාපෘතිය 3.5.0-beta-1 අනුවාදයෙන් පටන්ගෙන, Maven විසින් ඊනියා "ස්ථාන දරන්නන්" සඳහා සහය ඇතුළත් කර නැත. මෙම ආදේශකවල සාරය එයයි pom.xml ව්යාපෘති අනුවාදයේ නිශ්චිත ඇඟවීමක් වෙනුවට, විචල්යයන් භාවිතා වේ ${සංශෝධනය}, ${sha1} и ${changelist}. මෙම ගුණාංගවල අගයන් මූලද්‍රව්‍යය තුළම සකසා ඇතදේපළ>, නැතහොත් ඒවා පද්ධති දේපලක් හරහා අර්ථ දැක්විය හැක

mvn -Drevision=2.0.0 පිරිසිදු පැකේජය

පද්ධති දේපල අගයන් අර්ථ දක්වා ඇති අගයන්ට වඩා ප්‍රමුඛත්වය ගනීදේපළ>.

දෙමාපිය

  4.0.0
  
    org.apache
    apache
    18
  
  org.apache.maven.ci
  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 පිරිසිදු පැකේජය

ඔබට නිකුතුවක් කිරීමට අවශ්‍ය නම්, SNAPSHOT යළි පිහිටුවන්න

    mvn -Dchangelist= පිරිසිදු පැකේජය

*ඉහත උදාහරණ උපුටා ගන්නා ලදී ලිපි Maven Apache Project වෙබ් අඩවියේ

කටුක යථාර්ථය

සෑම දෙයක්ම හොඳයි සහ සෞඛ්ය සම්පන්නයි, එය තෘප්තිමත් හැඟීමක් දැනීමට කාලයයි, නමුත් නැත. ගබඩාවේ ප්‍රකාශයට පත් කරන ලද කෞතුක වස්තු පිළිබඳ විස්තරවල එය ප්‍රතිස්ථාපනය නොකරන බැවින්, මෙම ක්‍රමය ස්ථාපනය සහ යෙදවීම සඳහා ක්‍රියා නොකරනු ඇත. ${සංශෝධනය} එහි අරුත මත සහ මේවන් තවදුරටත් එය කුමක් දැයි තේරුම් නොගනු ඇත.


    org.apache
    apache
    ${සංශෝධනය}

උමගක කෙළවරේ ආලෝකයක්

අපි ප්‍රශ්නයට විසඳුමක් සෙවිය යුතුයි. තත්ත්වය බේරගන්න තිබුණා flatten-maven-plugin. මෙම ප්ලගිනය pom හි ඇති සියලුම විචල්‍යයන් විසඳයි, නමුත් ඒ සමඟම එකලස් කිරීමේදී පමණක් අවශ්‍ය වන සහ ප්‍රකාශිත කෞතුක වස්තු වෙනත් ව්‍යාපෘතිවලට ආනයනය කිරීමේදී අවශ්‍ය නොවන වෙනත් තොරතුරු රාශියක් කපා දමයි. ප්ලගිනය ද සියලු මාපිය-ළමා යැපීම් "සෘජු" කරන අතර, එහි ප්‍රතිඵලයක් වශයෙන්, ඔබට අවශ්‍ය සියල්ල ඇතුළත් පැතලි පොම් එකක් ලැබේ. අපහසුතාවය වූයේ එය අපට කිසිසේත් නොගැලපෙන ඕනෑවට වඩා “අතිරේක” කපා හැරීමයි. මෙම ප්ලගිනය සංවර්ධනය කිරීම පිළිබඳ තොරතුරු අධ්‍යයනය කිරීමෙන් පසු, විශ්වයේ අප පමණක් නොවන බව පෙනී ගිය අතර, 2018 අගෝස්තු මාසයේදී, ප්ලගින ගබඩාවේ Github මත ඇදීමේ ඉල්ලීමක් නිර්මාණය කරන ලද්දේ එය කළ හැකි කිරීමට ඇති ආශාවෙනි. pom.xml "කෙලෙස" කරන්නේ කෙසේද යන්න අපගේම තීරණය කිරීමට. සංවර්ධකයින් දුක් විඳින අයගේ හඬට ඇහුම්කන් දුන් අතර, දැනටමත් දෙසැම්බර් මාසයේදී, නව අනුවාදය 1.1.0 නිකුත් කිරීමත් සමඟ, නව මාදිලිය, solveCiFriendliesOnly, වෙන කවරදාටත් වඩා සුදුසු වූ flatten-maven-plugin හි දර්ශනය විය - එය පිටත් වේ. මූලද්රව්යය හැර pom.xml ලෙස සහ ඉඩ දෙයි ${සංශෝධනය}, ${sha1} и ${changelist}.

ව්‍යාපෘතියට ප්ලගිනයක් එකතු කිරීම


  
    org.codehaus.mojo
    flatten-maven-plugin
    1.1.0
    
      සැබෑ
      විසදුම් CiFriendlies පමණයි
    
    
      
        සමතලා කරන්න
        ක්රියාවලිය-සම්පත්
        
          සමතලා කරන්න
        
      
      
        සමතලා කරන්න.පිරිසිදු කරන්න
        පිරිසිදු
        
          පිරිසිදු
        
      
    
  

ඉවරයි!

සතුටුදායක අවසානය

මෙතැන් සිට, සම්පූර්ණ ව්‍යාපෘතියේ අනුවාදය වෙනස් කිරීමට සහ ඒ පිළිබඳව සියලු පරායත්තයන්ට දැනුම් දීමට, අපට අවශ්‍ය වන්නේ මූලද්‍රව්‍යය සංස්කරණය කිරීමයි.සංශෝධනය> මූලයේ පමණි pom.xml. එකම වෙනසක් සහිත මෙම ගොනු සියයක් දෙකක් සමාලෝචනයට පැමිණෙන්නේ නැත, නමුත් එකක්. හොඳයි, භාවිතා කිරීමට අවශ්ය නැත versions-maven-plugin.

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න