మావెన్ ప్రాజెక్ట్‌లలో సంస్కరణను సులభతరం చేయడానికి flatten-maven-pluginని ఉపయోగించి అనుభవం

О нас

1C వద్ద మేము ప్లాట్‌ఫారమ్‌ను మాత్రమే అభివృద్ధి చేస్తాము 1C: ఎంటర్‌ప్రైజ్సి ++ и జావాస్క్రిప్ట్, కానీ జావా అప్లికేషన్లు - ముఖ్యంగా కొత్త అభివృద్ధి వాతావరణం ఎంటర్‌ప్రైజ్ డెవలప్‌మెంట్ టూల్స్ ఎక్లిప్స్ ఆధారంగా మరియు ప్లాట్‌ఫారమ్‌తో లోతుగా అనుసంధానించబడిన మెసెంజర్ సర్వర్ - పరస్పర వ్యవస్థలు.

ఎంట్రీ

మేము చాలా తరచుగా జావా అప్లికేషన్‌ల కోసం మావెన్‌ను బిల్డ్ సిస్టమ్‌గా ఉపయోగిస్తాము మరియు ఈ చిన్న వ్యాసంలో అభివృద్ధిని నిర్వహించే ప్రక్రియలో మనం ఎదుర్కోవాల్సిన సమస్యలలో ఒకదాని గురించి మరియు దీనిని అధిగమించడానికి మాకు అనుమతించిన విధానం గురించి మాట్లాడాలనుకుంటున్నాము. సమస్య.

ముందస్తు అవసరాలు మరియు వర్క్‌ఫ్లో

మా మావెన్ ప్రాజెక్ట్‌లలో అభివృద్ధి యొక్క ప్రత్యేకతల కారణంగా, మేము చాలా మాడ్యూల్స్, డిపెండెన్సీలు మరియు చైల్డ్ ప్రాజెక్ట్‌లను ఉపయోగిస్తాము. ఒక చెట్టులోని పోమ్ ఫైల్‌ల సంఖ్య పదుల లేదా వందలలో ఉండవచ్చు.

మావెన్ ప్రాజెక్ట్‌లలో సంస్కరణను సులభతరం చేయడానికి flatten-maven-pluginని ఉపయోగించి అనుభవం

ఇది కనిపిస్తుంది: పెద్ద విషయం లేదు, వారు దానిని ఒకసారి సృష్టించారు మరియు దాని గురించి మరచిపోయారు. మీరు ఒకేసారి అన్ని ఫైల్‌లలో ఏదైనా మార్చడం లేదా జోడించడం అవసరమైతే, ఎడిటర్‌లు మరియు IDEలలో చాలా అనుకూలమైన సాధనాలు ఉన్నాయి. pom.xmlకి అత్యంత సాధారణ సాధారణ మార్పు ఏమిటి? ప్రాజెక్ట్ వెర్షన్‌లు మరియు డిపెండెన్సీలలో మార్పులు వస్తాయని మేము నమ్ముతున్నాము. బహుశా ఎవరైనా దీనితో వాదించాలనుకోవచ్చు, కానీ ఇది మన పరిస్థితి. కారణం ఏమిటంటే, కెర్నల్‌తో పాటు, మేము మా స్వంత లైబ్రరీలను ఏకకాలంలో అభివృద్ధి చేస్తున్నాము మరియు బిల్డ్ మరియు టెస్టింగ్ ఫలితాల యొక్క స్థిరమైన పునరుత్పత్తి కోసం, స్నాప్‌షాట్‌ల ఉపయోగం మాకు అనుకూలమైన విధానంగా కనిపించడం లేదు. ఈ కారణంగా, ప్రతి బిల్డ్‌తో ప్రాజెక్ట్‌లలో సంస్కరణ సంఖ్యను పెంచడం అవసరం.

అలాగే, ఎప్పటికప్పుడు, డెవలపర్ తన స్వంత లైబ్రరీ శాఖను నిర్మించి, అన్ని డిపెండెన్సీలకు వ్యతిరేకంగా దాని కార్యాచరణను తనిఖీ చేయాలి, దాని కోసం అతను వాటన్నింటి సంస్కరణను మాన్యువల్‌గా మార్చాలి.

ప్రారంభ పరిష్కారం

ఇటువంటి తరచుగా మరియు బహుళ సంస్కరణ మార్పులతో, నేను CIలో ప్రక్రియను సులభతరం చేయాలనుకుంటున్నాను మరియు ఆటోమేట్ చేయాలనుకుంటున్నాను. ఇక్కడ ఒక అనుకూలమైన, బాగా తెలిసిన ప్లగ్ఇన్ రెస్క్యూకి వస్తుంది. వెర్షన్లు-మావెన్-ప్లగ్ఇన్ - దాన్ని కనెక్ట్ చేసి లాంచ్ చేయండి

mvn -N సంస్కరణలు:సెట్ -DnewVersion=2.0.1

మరియు మావెన్ ప్రతిదాన్ని తప్పనిసరిగా చేస్తాడు: ఇది పై నుండి క్రిందికి సోపానక్రమం ద్వారా నడుస్తుంది, అన్ని సంస్కరణలను భర్తీ చేస్తుంది - అందం! ఇప్పుడు పుల్ అభ్యర్థనను పెంచడం మాత్రమే మిగిలి ఉంది, సహోద్యోగులు మార్పులను సమీక్షిస్తారు మరియు మీరు త్వరగా ట్రంక్‌లో చేరవచ్చు. త్వరగా? అది ఎలా ఉన్నా. వందల జంట pom.xml సమీక్ష కోసం, మరియు ఇది కోడ్‌ను లెక్కించడం లేదు. అదనంగా, ఇంత పెద్ద సంఖ్యలో మారిన ఫైల్‌లతో విలీన వైరుధ్యాల నుండి ఎవరూ సురక్షితంగా లేరు. CI ప్రక్రియలో, కార్యాచరణలో మార్పులతో పాటు సంస్కరణ మార్పులు స్వయంచాలకంగా జరుగుతాయని ఇక్కడ గమనించాలి మరియు ఏదో ఒకవిధంగా విడిగా కాదు.

క్రొత్త లక్షణాలు

కొంతకాలం మేము శాంతించాము మరియు రాజీనామా చేసి, అబ్బాయిలు వచ్చే వరకు మేము అలాగే జీవించాము మావెన్ అపాచీ ప్రాజెక్ట్ వెర్షన్ 3.5.0-beta-1 నుండి ప్రారంభించి, "ప్లేస్‌హోల్డర్‌లు" అని పిలవబడే వాటికి Maven మద్దతును చేర్చలేదు. ఈ ప్రత్యామ్నాయాల సారాంశం ఏమిటంటే pom.xml ప్రాజెక్ట్ వెర్షన్ యొక్క నిర్దిష్ట సూచనకు బదులుగా, వేరియబుల్స్ ఉపయోగించబడతాయి ${రివిజన్}, ${sha1} и ${మాంజెలిస్ట్}. ఈ లక్షణాల విలువలు మూలకంలో సెట్ చేయబడతాయిలక్షణాలు>, లేదా వాటిని సిస్టమ్ ప్రాపర్టీ ద్వారా నిర్వచించవచ్చు

mvn -Drevision=2.0.0 క్లీన్ ప్యాకేజీ

సిస్టమ్ ప్రాపర్టీ విలువలు నిర్వచించిన విలువల కంటే ప్రాధాన్యతనిస్తాయిలక్షణాలు>.

మాతృ

  4.0.0
  
    org.apache
    అపాచీ
    18
  
  org.apache.maven.ci
  ci-తల్లిదండ్రులు
  మొదటి CI స్నేహపూర్వక
  ${revision}${sha1}${మార్పిడి}
  ...
  
    1.3.1
    -స్నాప్‌షాట్
    
  


సంతతి

  4.0.0
  
    org.apache.maven.ci
    ci-తల్లిదండ్రులు
    ${revision}${sha1}${మార్పిడి}
  
  org.apache.maven.ci
  ci-పిల్లవాడు
   ...

మీరు వెర్షన్ 2.0.0-SNAPSHOT బిల్డ్ చేయాలనుకుంటే, ఉపయోగించండి

    mvn -Drevision=2.0.0 క్లీన్ ప్యాకేజీ

మీరు విడుదల చేయాలనుకుంటే, స్నాప్‌షాట్‌ని రీసెట్ చేయండి

    mvn -Dchangelist= క్లీన్ ప్యాకేజీ

*పై ఉదాహరణలు నుండి తీసుకోబడ్డాయి వ్యాసాలు మావెన్ అపాచీ ప్రాజెక్ట్ వెబ్‌సైట్‌లో

కఠినమైన వాస్తవికత

ప్రతిదీ మంచిది మరియు ఆరోగ్యకరమైనది, ఇది సంతృప్తిని అనుభవించే సమయం, కానీ లేదు. రిపోజిటరీలో ప్రచురించబడిన కళాఖండాల వివరణలలో ఇది భర్తీ చేయబడదు కాబట్టి, ఇన్‌స్టాల్ చేయడానికి మరియు అమలు చేయడానికి ఈ పద్ధతి పని చేయదని తేలింది. ${రివిజన్} దాని అర్థం మరియు మావెన్ ఇకపై దాని గురించి ఏమి అర్థం చేసుకోలేరు.


    org.apache
    అపాచీ
    ${రివిజన్}

సొరంగం చివర ఒక కాంతి

సమస్యకు పరిష్కారం వెతకాలి. పరిస్థితిని కాపాడగలిగారు flatten-maven-plugin. ఈ ప్లగ్ఇన్ పోమ్‌లోని అన్ని వేరియబుల్స్‌ను పరిష్కరిస్తుంది, అయితే అదే సమయంలో అసెంబ్లీ సమయంలో మాత్రమే అవసరమయ్యే మరియు ఇతర ప్రాజెక్ట్‌లలోకి ప్రచురించబడిన కళాఖండాలను దిగుమతి చేసుకునేటప్పుడు అవసరం లేని చాలా ఇతర సమాచారాన్ని కట్ చేస్తుంది. ప్లగ్ఇన్ అన్ని పేరెంట్-చైల్డ్ డిపెండెన్సీలను కూడా "నిఠారుగా చేస్తుంది" మరియు ఫలితంగా, మీకు అవసరమైన ప్రతిదాన్ని కలిగి ఉండే ఫ్లాట్ పోమ్ మీకు లభిస్తుంది. అసౌకర్యం ఏమిటంటే ఇది చాలా ఎక్కువ "అదనపు"ని కత్తిరించింది, ఇది మాకు అస్సలు సరిపోదు. ఈ ప్లగ్ఇన్ అభివృద్ధిపై సమాచారాన్ని అధ్యయనం చేసిన తర్వాత, విశ్వంలో మనం మాత్రమే లేమని తేలింది మరియు ఆగష్టు 2018లో, దానిని సాధ్యం చేయాలనే కోరికతో ప్లగ్ఇన్ రిపోజిటరీలో గితుబ్‌పై పుల్-రిక్వెస్ట్ సృష్టించబడింది. pom.xmlని ఎలా "పాడుచేయాలో" మా స్వంతంగా నిర్ణయించడానికి. డెవలపర్లు బాధపడుతున్న వారి స్వరాలను విన్నారు మరియు ఇప్పటికే డిసెంబర్‌లో, కొత్త వెర్షన్ 1.1.0 విడుదలతో, కొత్త మోడ్, రిజల్యూషన్‌సిఫ్రెండ్లీస్ఓన్లీ, ఫ్లాటెన్-మావెన్-ప్లగ్ఇన్‌లో కనిపించింది, ఇది గతంలో కంటే మరింత అనుకూలంగా ఉంది - ఇది వదిలివేసింది. మూలకం మినహా pom.xml మరియు అనుమతిస్తుంది ${రివిజన్}, ${sha1} и ${మాంజెలిస్ట్}.

ప్రాజెక్ట్‌కి ప్లగిన్‌ని జోడిస్తోంది


  
    org.codehaus.mojo
    flatten-maven-plugin
    1.1.0
    
      నిజం
      పరిష్కరించండిCiFriendlies మాత్రమే
    
    
      
        చదును
        ప్రక్రియ-వనరులు
        
          చదును
        
      
      
        చదును.క్లీన్
        శుభ్రంగా
        
          శుభ్రంగా
        
      
    
  

పూర్తయింది!

శుభాంతం

ఇప్పటి నుండి, మొత్తం ప్రాజెక్ట్ యొక్క సంస్కరణను మార్చడానికి మరియు అన్ని డిపెండెన్సీలకు దాని గురించి తెలియజేయడానికి, మేము మూలకాన్ని సవరించాలిపునర్విమర్శ> కేవలం రూట్‌లో pom.xml. ఒకే మార్పుతో ఉన్న వీటిలో వంద లేదా రెండు ఫైల్‌లు సమీక్షకు వస్తాయి, కానీ ఒకటి. బాగా, ఉపయోగించాల్సిన అవసరం లేదు వెర్షన్లు-మావెన్-ప్లగ్ఇన్.

మూలం: www.habr.com

ఒక వ్యాఖ్యను జోడించండి