ื ื™ืกื™ื•ืŸ ื‘ืฉื™ืžื•ืฉ ื‘ืคืœืื˜ืŸ-maven-plugin ื›ื“ื™ ืœืคืฉื˜ ืืช ื ื™ื”ื•ืœ ื”ื’ืจืกื” ื‘ืคืจื•ื™ืงื˜ื™ื ืฉืœ maven

ืื•ื“ื•ืช

ื‘-1C ืื ื—ื ื• ืžืคืชื—ื™ื ืœื ืจืง ืคืœื˜ืคื•ืจืžื” 1C: Enterprise ืขืœ C ++ ะธ JavaScript, ืืœื ื’ื ื™ื™ืฉื•ืžื™ Java - ื‘ืคืจื˜ ืกื‘ื™ื‘ืช ื”ืคื™ืชื•ื— ื”ื—ื“ืฉื” ื›ืœื™ื ืœืคื™ืชื•ื— ืืจื’ื•ื ื™ ืžื‘ื•ืกืก ืขืœ Eclipse ื•ืฉืจืช ืžืกื ื’'ืจ ืžืฉื•ืœื‘ ืขืžื•ืง ืขื ื”ืคืœื˜ืคื•ืจืžื” - ืžืขืจื›ื•ืช ืื™ื ื˜ืจืืงืฆื™ื”.

ื›ื ื™ืกื”

ืœืจื•ื‘ ืื ื• ืžืฉืชืžืฉื™ื ื‘-maven ื›ืžืขืจื›ืช ื‘ื ื™ื™ื” ืœื™ื™ืฉื•ืžื™ Java, ื•ื‘ืžืืžืจ ืงืฆืจ ื–ื” ื ืจืฆื” ืœื“ื‘ืจ ืขืœ ืื—ืช ื”ื‘ืขื™ื•ืช ืฉื”ื™ื™ื ื• ืฆืจื™ื›ื™ื ืœื”ืชืžื•ื“ื“ ืขืžืŸ ื‘ืชื”ืœื™ืš ืืจื’ื•ืŸ ื”ืคื™ืชื•ื—, ื•ืขืœ ื”ื’ื™ืฉื” ืฉืืคืฉืจื” ืœื ื• ืœื”ืชื’ื‘ืจ ืขืœ ื–ื”. ื‘ึผึฐืขึธื™ึธื”.

ื“ืจื™ืฉื•ืช ืงื“ื ื•ื–ืจื™ืžืช ืขื‘ื•ื“ื”

ื‘ืฉืœ ื”ืžืืคื™ื™ื ื™ื ื”ืกืคืฆื™ืคื™ื™ื ืฉืœ ื”ืคื™ืชื•ื— ื‘ืคืจื•ื™ืงื˜ื™ื ืฉืœ ืžื™ื™ื‘ืŸ ืฉืœื ื•, ืื ื• ืžืฉืชืžืฉื™ื ื‘ืœื ืžืขื˜ ืžื•ื“ื•ืœื™ื, ืชืœื•ืช ื•ืคืจื•ื™ืงื˜ื™ื ื™ืœื“ื™ื. ืžืกืคืจ ืงื‘ืฆื™ ืคื•ื ื‘ืขืฅ ืื—ื“ ื™ื›ื•ืœ ืœื”ื™ื•ืช ื‘ืขืฉืจื•ืช ืื• ืืคื™ืœื• ืžืื•ืช.

ื ื™ืกื™ื•ืŸ ื‘ืฉื™ืžื•ืฉ ื‘ืคืœืื˜ืŸ-maven-plugin ื›ื“ื™ ืœืคืฉื˜ ืืช ื ื™ื”ื•ืœ ื”ื’ืจืกื” ื‘ืคืจื•ื™ืงื˜ื™ื ืฉืœ maven

ื–ื” ื ืจืื”: ืœื ื ื•ืจื, ื”ื ื™ืฆืจื• ืืช ื–ื” ืคืขื ืื—ืช ื•ืฉื›ื—ื• ืžื–ื”. ืื ืืชื” ืฆืจื™ืš ืœืฉื ื•ืช ืื• ืœื”ื•ืกื™ืฃ ืžืฉื”ื• ื‘ื›ืœ ื”ืงื‘ืฆื™ื ื‘ื•-ื–ืžื ื™ืช, ื™ืฉ ื”ืจื‘ื” ื›ืœื™ื ื ื•ื—ื™ื ื‘ืขื•ืจื›ื™ื ื•ื‘-IDE. ืžื”ื• ื”ืฉื™ื ื•ื™ ื”ืจื’ื™ืœ ื”ื ืคื•ืฅ ื‘ื™ื•ืชืจ ืœ-pom.xml? ืื ื• ืžืืžื™ื ื™ื ื›ื™ ืฉื™ื ื•ื™ื™ื ื‘ื’ืจืกืื•ืช ื”ืคืจื•ื™ืงื˜ ื•ื”ืชืœื•ืช. ืื•ืœื™ ืžื™ืฉื”ื• ื™ืจืฆื” ืœื”ืชื•ื•ื›ื— ืขื ื–ื”, ืื‘ืœ ื–ื” ื‘ื“ื™ื•ืง ื”ืžืฆื‘ ืืฆืœื ื•. ื”ืกื™ื‘ื” ื ืขื•ืฆื” ื‘ืขื•ื‘ื“ื” ืฉื™ื—ื“ ืขื ื”ืœื™ื‘ื”, ืื ื• ืžืคืชื—ื™ื ื‘ื•-ื–ืžื ื™ืช ืจื‘ื•ืช ืžืกืคืจื™ื•ืช ืžืฉืœื ื•, ื•ืœืฉืขืชื•ืง ืžืชืžืฉืš ืฉืœ ืชื•ืฆืื•ืช ื‘ื ื™ื™ื” ื•ื‘ื“ื™ืงื”, ื”ืฉื™ืžื•ืฉ ื‘ืชืžื•ื ื•ืช snapshot ืื™ื ื• ื ืจืื” ืœื ื• ื›ื’ื™ืฉื” ื ื•ื—ื”. ืžืกื™ื‘ื” ื–ื•, ื™ืฉ ืฆื•ืจืš ืœื”ืขืœื•ืช ืืช ืžืกืคืจ ื”ื’ืจืกื” ื‘ืคืจื•ื™ืงื˜ื™ื ืขื ื›ืœ ื‘ื ื™ื™ื”.

ื›ืžื• ื›ืŸ, ืžืขืช ืœืขืช, ืžืคืชื— ืฆืจื™ืš ืœื‘ื ื•ืช ืกื ื™ืฃ ืžืฉืœื• ืฉืœ ืกืคืจื™ื™ื” ื•ืœื‘ื“ื•ืง ืืช ื”ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ืฉืœื” ืžื•ืœ ื›ืœ ื”ืชืœื•ืช, ืฉืขื‘ื•ืจืŸ ื”ื•ื ืฆืจื™ืš ืœืฉื ื•ืช ื™ื“ื ื™ืช ืืช ื”ื’ืจืกื” ืฉืœ ื›ื•ืœืŸ.

ืคืชืจื•ืŸ ืจืืฉื•ื ื™

ืขื ืฉื™ื ื•ื™ื™ื ืชื›ื•ืคื™ื ื•ืžืจื•ื‘ื™ื ื›ืœ ื›ืš ื‘ื’ืจืกื”, ืื ื™ ืจื•ืฆื” ืœืคืฉื˜ ื•ืœื”ืคื•ืš ืืช ื”ืชื”ืœื™ืš ืœืื•ื˜ื•ืžื˜ื™ ื‘ืชื•ืš CI. ื–ื” ื”ืžืงื•ื ืฉื‘ื• ืชื•ืกืฃ ื ื•ื— ื•ืžื•ื›ืจ ื‘ื ืœื”ืฆื™ืœ. ื’ืจืกืื•ืช-maven-plugin - ื—ื‘ืจ ืื•ืชื• ื•ื”ืคืขืœ ืื•ืชื•

mvn -N versions:set -DnewVersion=2.0.1

ื•ืžื™ื™ื‘ืŸ ื™ืขืฉื” ื”ื›ืœ ื›ืžื• ืฉืฆืจื™ืš: ื”ื•ื ื™ืจื•ืฅ ื‘ื”ื™ืจืจื›ื™ื” ืžืœืžืขืœื” ืœืžื˜ื”, ื•ื™ื—ืœื™ืฃ ืืช ื›ืœ ื”ื’ืจืกืื•ืช - ื™ื•ืคื™! ื›ืขืช ื›ืœ ืฉื ื•ืชืจ ื”ื•ื ืœื”ืขืœื•ืช ื‘ืงืฉืช ืžืฉื™ื›ื”, ืขืžื™ืชื™ื ื™ื‘ื“ืงื• ืืช ื”ืฉื™ื ื•ื™ื™ื, ื•ืชื•ื›ืœื• ืœื”ืฆื˜ืจืฃ ื‘ืžื”ื™ืจื•ืช ืœืชื ื”ืžื˜ืขืŸ. ื‘ึผึดืžึฐื”ึดื™ืจื•ึผืช? ืœื ืžืฉื ื” ืื™ืš ื–ื”. ื›ืžื” ืžืื•ืช pom.xml ืœื‘ื“ื™ืงื”, ื•ื–ื” ืœื ืกื•ืคืจ ืืช ื”ืงื•ื“. ื‘ื ื•ืกืฃ, ืืฃ ืื—ื“ ืœื ื‘ื˜ื•ื— ืžื”ืชื ื’ืฉื•ื™ื•ืช ืžื™ื–ื•ื’ ืขื ืžืกืคืจ ื›ื” ื’ื“ื•ืœ ืฉืœ ืงื‘ืฆื™ื ืฉื”ืฉืชื ื•. ื™ืฉ ืœืฆื™ื™ืŸ ื›ืืŸ ืฉื‘ืชื”ืœื™ืš ื”-CI, ืฉื™ื ื•ื™ื™ื ื‘ื’ืจืกื” ืžืชืจื—ืฉื™ื ื‘ืื•ืคืŸ ืื•ื˜ื•ืžื˜ื™ ื™ื—ื“ ืขื ืฉื™ื ื•ื™ื™ื ื‘ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช, ื•ืœื ืื™ื›ืฉื”ื• ื‘ื ืคืจื“.

ืชื›ื•ื ื•ืช ื—ื“ืฉื•ืช

ืœื–ืžืŸ ืžื” ื ืจื’ืขื ื•, ื•ื”ืชืคื˜ืจื ื•, ื—ื™ื™ื ื• ื›ืš ืขื“ ืฉื”ื—ื‘ืจ'ื” ืž ืคืจื•ื™ืงื˜ ืžื™ื™ื‘ืŸ ืืคืืฆ'ื™ ื”ื—ืœ ืžื’ืจืกื” 3.5.0-beta-1, Maven ืœื ื›ืœืœื” ืชืžื™ื›ื” ื‘ืžื” ืฉื ืงืจื "ืžืฆื™ื™ื ื™ ืžื™ืงื•ื". ื”ืžื”ื•ืช ืฉืœ ืชื—ืœื™ืคื™ื ืืœื” ื”ื™ื ื–ื• pom.xml ื‘ืžืงื•ื ืื™ื ื“ื™ืงืฆื™ื” ืกืคืฆื™ืคื™ืช ืฉืœ ื’ืจืกืช ื”ืคืจื•ื™ืงื˜, ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘ืžืฉืชื ื™ื ${revision}, ${sha1} ะธ ${changelist}. ื”ืขืจื›ื™ื ืฉืœ ืžืืคื™ื™ื ื™ื ืืœื” ืขืฆืžื ื ืงื‘ืขื™ื ื‘ืืœืžื ื˜ื ื›ืกื™ื>, ืื• ืฉื ื™ืชืŸ ืœื”ื’ื“ื™ืจ ืื•ืชื ื‘ืืžืฆืขื•ืช ืžืืคื™ื™ืŸ ืžืขืจื›ืช

mvn -Drevision=2.0.0 ื—ื‘ื™ืœื” ื ืงื™ื™ื”

ืขืจื›ื™ ืžืืคื™ื™ื ื™ ื”ืžืขืจื›ืช ืžืงื‘ืœื™ื ืขื“ื™ืคื•ืช ืขืœ ืคื ื™ ืขืจื›ื™ื ื”ืžื•ื’ื“ืจื™ื ื‘ื ื›ืกื™ื>.

ื”ื”ื•ืจื”

  4.0.0
  
    org.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
  ืกื™-ื™ืœื“
   ...

ืื ืืชื” ืจื•ืฆื” ืœื‘ื ื•ืช ื’ืจืกื” 2.0.0-SNAPSHOT, ืื– ืคืฉื•ื˜ ื”ืฉืชืžืฉ

    mvn -Drevision=2.0.0 ื—ื‘ื™ืœื” ื ืงื™ื™ื”

ืื ืืชื” ืจื•ืฆื” ืœืขืฉื•ืช ืฉื—ืจื•ืจ, ืื– ืคืฉื•ื˜ ืืคืก ืืช SNAPSHOT

    mvn -Dchangelist= ื—ื‘ื™ืœื” ื ืงื™ื™ื”

*ื”ื“ื•ื’ืžืื•ืช ืœืขื™ืœ ืœืงื•ื—ื•ืช ืž ืžืืžืจื™ื ื‘ืืชืจ Maven Apache Project

ืžืฆื™ืื•ืช ืงืฉื”

ื”ื›ืœ ื˜ื•ื‘ ื•ื‘ืจื™ื, ื”ื’ื™ืข ื”ื–ืžืŸ ืœื”ืจื’ื™ืฉ ืชื—ื•ืฉืช ืกื™ืคื•ืง, ืื‘ืœ ืœื. ืžืกืชื‘ืจ ืฉืฉื™ื˜ื” ื–ื• ืœื ืชืขื‘ื•ื“ ืขื‘ื•ืจ ื”ืชืงื ื” ื•ืคืจื™ืกื”, ืžื›ื™ื•ื•ืŸ ืฉื”ื™ื ืœื ืชื•ื—ืœืฃ ื‘ืชื™ืื•ืจื™ ื”ื—ืคืฆื™ื ื”ืžืชืคืจืกืžื™ื ื‘ืžืื’ืจ ${revision} ืขืœ ืžืฉืžืขื•ืชื• ื•ืžืื‘ืŸ ื›ื‘ืจ ืœื ื™ื‘ื™ืŸ ืขืœ ืžื” ืžื“ื•ื‘ืจ.


    org.apache
    ืืคืืฆ'ื™
    ${revision}

ืื•ืจ ื‘ืงืฆื” ืžื ื”ืจื”

ืื ื—ื ื• ืฆืจื™ื›ื™ื ืœื—ืคืฉ ืคืชืจื•ืŸ ืœื‘ืขื™ื”. ื™ื›ื•ืœ ื”ื™ื” ืœื”ืฆื™ืœ ืืช ื”ืžืฆื‘ flatten-maven-plugin. ืชื•ืกืฃ ื–ื” ืคื•ืชืจ ืืช ื›ืœ ื”ืžืฉืชื ื™ื ื‘-pom, ืืš ื‘ื• ื–ืžื ื™ืช ื—ื•ืชืš ืžื™ื“ืข ืจื‘ ืื—ืจ ืฉื“ืจื•ืฉ ืจืง ื‘ืžื”ืœืš ื”ื”ืจื›ื‘ื” ื•ืื™ื ื• ื ื—ื•ืฅ ื‘ืขืช ื™ื™ื‘ื•ื โ€‹โ€‹ื—ืคืฆื™ื ืฉืคื•ืจืกืžื• ืœืคืจื•ื™ืงื˜ื™ื ืื—ืจื™ื. ื”ืชื•ืกืฃ ื’ื "ืžื™ื™ืฉืจ" ืืช ื›ืœ ื”ืชืœื•ืช ืฉืœ ื”ื•ืจื”-ื™ืœื“, ื•ื›ืชื•ืฆืื” ืžื›ืš, ืืชื” ืžืงื‘ืœ ืคื•ื ืฉื˜ื•ื— ื”ื›ื•ืœืœ ืืช ื›ืœ ืžื” ืฉืืชื” ืฆืจื™ืš. ืื™ ื”ื ื•ื—ื•ืช ื”ื™ื™ืชื” ืฉื–ื” ื’ื•ื–ืจ ื™ื•ืชืจ ืžื“ื™ "ืชื•ืกืคืช", ืžื” ืฉืœื ื”ืชืื™ื ืœื ื• ื‘ื›ืœืœ. ืœืื—ืจ ืœื™ืžื•ื“ ื”ืžื™ื“ืข ืขืœ ืคื™ืชื•ื— ื”ืชื•ืกืฃ ื”ื–ื”, ื”ืชื‘ืจืจ ืฉืื ื—ื ื• ืœื ื”ื™ื—ื™ื“ื™ื ื‘ื™ืงื•ื, ื•ื‘ืื•ื’ื•ืกื˜ 2018 ื ื•ืฆืจื” ื‘ืงืฉืช pull-request ื‘-Github ื‘ืžืื’ืจ ื”ืชื•ืกืคื™ื ืžืชื•ืš ืจืฆื•ืŸ ืœืืคืฉืจ ื–ืืช. ืœืงื‘ื•ืข ื‘ืขืฆืžื ื• ืื™ืš "ืœืงืœืงืœ" ืืช pom.xml. ื”ืžืคืชื—ื™ื ื”ืงืฉื™ื‘ื• ืœืงื•ืœื•ืช ื”ืกื•ื‘ืœื™ื, ื•ื›ื‘ืจ ื‘ื“ืฆืžื‘ืจ, ืขื ื™ืฆื™ืืช ื”ื’ืจืกื” ื”ื—ื“ืฉื” 1.1.0, ื”ื•ืคื™ืข ืžืฆื‘ ื—ื“ืฉ, resolveCiFriendliesOnly, ื‘ืชื•ืกืฃ flatten-maven-ืžืชืื™ื ื™ื•ืชืจ ืžืชืžื™ื“ - ื”ื•ื ืขื•ื–ื‘ pom.xml ื›ืคื™ ืฉื”ื•ื, ืœืžืขื˜ ื”ืืœืžื ื˜ ื•ืžืืคืฉืจ ${revision}, ${sha1} ะธ ${changelist}.

ื”ื•ืกืคืช ืชื•ืกืฃ ืœืคืจื•ื™ืงื˜


  
    org.codehaus.mojo
    flatten-maven-plugin
    1.1.0
    
      ื ึธื›ื•ึนืŸ
      resolveCiFriendliesOnly
    
    
      
        ืœึฐืฉืึทื˜ึตื—ึท
        ืžืฉืื‘ื™ ืชื”ืœื™ื›ื™ื
        
          ืœึฐืฉืึทื˜ึตื—ึท
        
      
      
        ืœืฉื˜ื•ื—.ืœื ืงื•ืช
        ืœึฐื ึทืงื•ึนืช
        
          ืœึฐื ึทืงื•ึนืช
        
      
    
  

ื‘ื•ืฆืข!

ืกื•ืฃ ื˜ื•ื‘

ืžืขืชื” ื•ื”ืœืื”, ื›ื“ื™ ืœืฉื ื•ืช ืืช ื”ื’ืจืกื” ืฉืœ ื”ืคืจื•ื™ืงื˜ ื›ื•ืœื• ื•ืœื™ื™ื“ืข ืืช ื›ืœ ื”ืชืœื•ื™ื•ืช ืขืœื™ื•, ืื ื—ื ื• ืจืง ืฆืจื™ื›ื™ื ืœืขืจื•ืš ืืช ื”ืืœืžื ื˜ืจื‘ื™ื–ื™ื”> ืจืง ื‘ืฉื•ืจืฉ pom.xml. ืœื ืžืื” ืื• ืฉื ื™ื™ื ืžื”ืงื‘ืฆื™ื ื”ืืœื” ืขื ืื•ืชื• ืฉื™ื ื•ื™ ืžื’ื™ืขื™ื ืœื‘ื™ืงื•ืจืช, ืืœื ืื—ื“. ื•ื‘ื›ืŸ, ืื™ืŸ ืฆื•ืจืš ืœื”ืฉืชืžืฉ ื’ืจืกืื•ืช-maven-plugin.

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”