Lazybones рдкреНрд░реЛрдЬреЗрдХреНрдЯ - "Lazybones" рдЬреЛ рдЖрдкрдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

рдореБрдЭреЗ рдорд╛рд╡реЗрди рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИред
рдЗрд╕ рдЪреАрдЬ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореЗрд░реА рднрд╛рд╡реБрдХ рдШреГрдгрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рд▓реЗрдЦ рд▓рд┐рдЦреЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдЬ рдореИрдВ рдорд╛рд╡реЗрди рдХреА рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ - рдЖрд░реНрдХрд╖рдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред рдпрд╣ рдЖрдк рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ, рд╣реИрдмреЗ ( 1 , 2 , 3 ) рдкрд░ рдорд╛рд╡реЗрди рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЖрдк рд╢рд╛рдпрдж рдЦреБрдж рдХреЛ рдЬрд╛рдирддреЗ рд╣реИрдВред

рддреЛ, рдЪрд╛рдкрд▓реВрд╕ рд╢рд╛рдВрдд рд╣реИрдВ, рдФрд░ рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ 1) рд╡реЗ рдПрдХ рдорд╛рдирдХ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд╕рд╛рде рдХрдИ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдереЗред 2) рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдЬрдХрдбрд╝рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рдирд╣реАрдВ рд╣реИред

рдпрд╣реА рдмрд╛рдд рдкреАрдЯрд░ рд▓реЗрдбрдмреНрд░реБрдХ рдиреЗ рд╕реЛрдЪреА рдЬрдм рдЙрдиреНрд╣реЛрдВрдиреЗ рд░реИрдЯрдкреИрдХ рдореЗрдВ рдЪрд╛рдкрд▓реВрд╕реЛрдВ рдХреА рдкреВрд░реНрдг рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдХреЛ рджреЗрдЦрд╛ред рддрдм рд▓реЗрдЬреАрдмреЛрдиреНрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдЬрдиреНрдо рд╣реБрдЖ рдерд╛ - рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдХрд░рдгред

рдЫрд╡рд┐

рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдХреИрд╕реЗ 1) рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Lazybones рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╣реА рдЯреЗрдореНрдкрд▓реЗрдЯ рдмрдирд╛рдП рдЬрд╛ рдЪреБрдХреЗ рд╣реИрдВред 2) рдХрд┐рд╕реА рднреА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдирдП рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдмрдирд╛рдПрдВред

рдореМрдЬреВрджрд╛ Lazybones рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

рддрдм рд╕рдм рдХреБрдЫ рдмреЗрд╣рдж рдЫреЛрдЯрд╛ рд╣реЛрдЧрд╛:
  1. GVM рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ Lazybones рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ рдпрд╛ Bintray рд╕реЗ рд╡рд┐рддрд░рдг рдкреИрдХреЗрдЬ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ
  2. рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ lazybones list рд╕рд╛рде рдХреНрдпрд╛ рдкреИрдЯрд░реНрди рдореМрдЬреВрдж рд╣реИрдВ (рдпрд╛ рднрдВрдбрд╛рд░ рдХрд╛ рдЕрдзреНрдпрдпрди)
  3. рд╣рдо lazybones info < > рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЪрдпрдирд┐рдд рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рддреЗ рд╣реИрдВ lazybones info < > рдХрдорд╛рдВрдб (рдпрд╛ рдмрд┐рдВрдЯреНрд░реЗ рдкрд░ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рдкреИрдХрдЧ-рдИ рдореЗрдВ рд░реАрдбрдореА рдкрдврд╝реЗрдВ)
  4. рд╣рдо рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдкреНрд░реЛрдЬреЗрдХреНрдЯ lazybones create < > < > < >

рдпрд╣ рд╕рдм, рдЖрдкрдХреЗ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд╣рд░ рдХреЛрдИ рд╕реНрд╡рддрдВрддреНрд░ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдирд╣реАрдВ, рдЕрдм рд╣рдо рд╕рд┐рд░реНрдл рджрд┐рд▓рдЪрд╕реНрдк рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред

рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЯреЗрдореНрдкрд▓реЗрдЯ рдмрдирд╛рдирд╛

рдЪреВрдБрдХрд┐ рдЖрдк # 361 Maven archetype ( maven-archetype-quickstart ) рд╕реЗ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ, рд╣рдо рднреА рдХреБрдЫ рдРрд╕рд╛ рд╣реА рдХрд░реЗрдВрдЧреЗ (рд╕рднреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рддреЗ рд╣реБрдП, рд╣рдо рдХреБрдЫ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЛ рдЫреЛрдбрд╝ рджреЗрдВрдЧреЗ)ред
рди рдХреЗрд╡рд▓ рдЖрдк рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдЧрдП рдЗрдВрдЯрд░рдиреЗрдЯ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рддреБрд▓рдирд╛ рджреЛрдиреЛрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрдк рд╕реНрд╡рдпрдВ рдЯреЗрдореНрдкрд▓реЗрдЯ рдмрдирд╛рдиреЗ рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдХреА рддреБрд▓рдирд╛ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдорд╛рд╡реЗрди рдЖрд░реНрдХрдЯрд╛рдЗрдк рдмрдирд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдпрд╣рд╛рдВ рд╡рд░реНрдгрд┐рдд рд╣реИ ред

рддреЛ рдЪрд▓рд┐рдП рдЪрд▓рддреЗ рд╣реИрдВред

рд╣рдо рдХреНрдпрд╛ рд╣рд╛рд╕рд┐рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ:


  1. рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЧреНрд░реИрдбрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд╡рд╛рд▓реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЪреВрдВрдХрд┐ рд╣рдо рдмрд╣реБрдд рдЖрд▓рд╕реА рд╣реИрдВ, рд╣рдо рдЖрд▓рд╕реА рднрд╛рдЧреЗрдВрдЧреЗ:
    >lazybones create lazybones-project lzb-templates
    рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реИрдВ:

     тФВ build.gradle // рдЪреИрд▓рди рдмрд┐рд▓реНрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ
     Nyx рдХреЗ рд▓рд┐рдП тФВ gradlew // рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓реЙрдиреНрдЪ рдлрд╝рд╛рдЗрд▓
     рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд▓рд┐рдП тФВ gradlew.bat // рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓реЙрдиреНрдЪ рдлрд╝рд╛рдЗрд▓
     тФВ README.md // рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓
     тФВ
     тФЬтФАтФАтФАgradle // рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рд╕рд╣рд╛рдпрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛
     тФВ
     .Templates // рд╣рдорд╛рд░реЗ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдЦрд╛рд▓реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛
    

  2. рд╣рдо templates рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рдЬрд╛рддреЗ рд╣реИрдВ, рдЙрд╕рдореЗрдВ рдЕрдкрдиреЗ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреА рдПрдХ рдЙрдк-рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдмрдирд╛рддреЗ рд╣реИрдВ, рдФрд░ рдореВрд░реНрддрд┐рдХрд▓рд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБред рдЗрд╕реЗ VERSION рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рд╣реЛрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП 0.1

     > mkdir рдорд╛рд╡реЗрди-рд╕рд░рд▓
     > рд╕реАрдбреА рдорд╛рд╡реЗрди рд╕рд░рд▓
     > рдкреНрд░рддрд┐рдзреНрд╡рдирд┐ 0.1> рд╕рдВрд╕реНрдХрд░рдг
    

  3. рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдкрдХреЛ readme.md рдмрдирд╛рдиреЗ рдХреА readme.md , рдЬрд┐рд╕реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
  4. src/main/java , src/main/resources рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рдПрдБред java рдФрд░ рдЙрдирд╕реЗ resources рд╣рдо рдПрдХ рдЦрд╛рд▓реА .retain рдлрд╝рд╛рдЗрд▓ рдкрд░ рд░рдЦрддреЗ рд╣реИрдВ

     тФЬтФАтФАтФАmaven-рд╕рд░рд▓
     тФВ тФВ README.md
     тФВ тФВ рд╕рдВрд╕реНрдХрд░рдг
     тФВ тФВ
     Rc rcsrc
     Ain тФВрдореИрди
     Ava тФВрдЬрд╡рд╛
     Re re .retain
     тФВ тФВ
     Ources тФВresource
     Tain .retain
    

  5. рдЕрдм рдЪрд▓рд┐рдП рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХрд╛ рдЦреНрдпрд╛рд▓ рд░рдЦрддреЗ рд╣реИрдВред рдЪрд▓реЛ pom.xml рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ:
     <project> <modelVersion>4.0.0</modelVersion> <groupId>${groupId}</groupId> <artifactId>${artifactId}</artifactId> <version>${version}</version> <build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>1.2.1</version> <executions> <execution> <phase>test</phase> <goals> <goal>java</goal> </goals> <configuration> <mainClass>${pkg}.App</mainClass> <arguments> <argument>${message}</argument> </arguments> </configuration> </execution> </executions> </plugin> </plugins> </build> </project> 

    рдПрдПрдПрдПрдПрдП !!!!!!!
    рддреЛ, рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдПрдХ рд╕рд╛рде рдЦреАрдВрдЪ рд▓рд┐рдпрд╛, рджреЗрдЦреЛред рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ ${...} ред рдпрд╣ рд╡рд╣ рд╣реИ рдЬреЛ рд╣рдо рдЙрди рдорд╛рдиреЛрдВ рдореЗрдВ рдмрджрд▓ рдЬрд╛рдПрдВрдЧреЗ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣рдореЗрдВ create рд╕рдордп рдкреВрдЫреЗрдВрдЧреЗред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдпреЗ рд╕рд┐рд░реНрдл рдЧреНрд░реВрд╡реА рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдЯреЛрдХрди рд╣реИрдВред рдпрджрд┐ рдЖрдк рд╡реЗрд▓реЛрд╕рд┐рдЯреА, рдлрд╝реНрд░реАрдорд╛рд░реНрдХрд░, рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдЯреЗрдореНрдкрд▓реЗрдЯ рд╣реИрдВрдбрд▓рд░ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ, рддреЛ рдЖрдк рд╣рд░ рдЪреАрдЬрд╝ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдВрдЧреЗред рд▓реЗрдХрд┐рди рдЙрд╕ рдкрд░ рдФрд░ рдмрд╛рдж рдореЗрдВред
    рд╣реЗрд▓рдлреЗрдпрд░ рдЗрди App рдХреЗ main рд╡рд░реНрдЧ рдХрд╛ рд╕рд┐рд░реНрдл рд▓реЙрдиреНрдЪ рд╣реИред рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╣рдо рдЕрднреА рддрдХ рдЗрд╕ рд╡рд░реНрдЧ рдХреЗ package рдФрд░ main рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВред
  6. рдЕрдм App.java рдлрд╝рд╛рдЗрд▓ рдХреЛ рджреЗрдЦреЗрдВ:
     package ${pkg}; public class App { public static void main(String[] args) { System.out.println(args[0]); } } 

    рдпрд╣рд╛рдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ рдПрдХ рдЪрд░ рд╣реИ - рдлрд┐рд░ рд╕реЗ, package ред рдЙрд╕реА рд╕рдордп, рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдореБрдЦреНрдп рддрд░реНрдХ рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдорд╛рд╡реЗрди рдХреЗ рд▓реЙрдиреНрдЪ рдХреЗ рджреМрд░рд╛рди, рдкрд░реАрдХреНрд╖рдг рдЪрд░рдг рдореЗрдВ, рд╣рдо рдЙрд╕ рд╕рдВрджреЗрд╢ рдХреЛ рджреЗрдЦрдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЪрдпрди рдХреЗ рджреМрд░рд╛рди, рдлрд┐рд░ рд╕реЗ create ред
    рддреЛ рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕рднреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдВ рдФрд░ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╣реИрдВ:
     Ava App.java
     Ones lazybones.groovy
     X pom.xml
     тФВ README.md
     тФВ рд╕рдВрд╕реНрдХрд░рдг
     тФВ
     тФФтФАтФАтФАsrc
         тФФтФАтФАтФАmain
             тФЬтФАтФАтФАjava
             тФВ .retain
             тФВ
             тФФтФАтФАтФАresources
                     .retain
    

  7. рдФрд░ рдЕрдм рдордЬрд╛ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдПрдХ рдкреЛрд╕реНрдЯ рдкреНрд░реЛрд╕реЗрд╕рд░ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╣рддрд╛ рд╣реИ рдЬреЛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдЕрдирдкреИрдХ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЪрд▓реЗрдЧрд╛ред рдХрд╛рд░реНрдп: 1) рд╕рдм рдХреБрдЫ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдЬрд░реВрд░рдд рд╣реИ, 2) рдкреИрдХреЗрдЬ рдХреЗ рд▓рд┐рдП рдЗрд╕реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛ рдлрд╝рд╛рдЗрд▓ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдВ, 3) рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ред
    рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рдЧреНрд░реВрд╡ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣рдореЗрдВ рдЗрд╕рдореЗрдВ рдорджрдж рдХрд░реЗрдЧреА, рдЕрд╡рд╢реНрдп:
     import static org.apache.commons.io.FileUtils.moveFileToDirectory Map<String,String> props = [:] // ask  2  - ,    . //     .  (   ,   ) . props.groupId = ask(' groupId [org.example]: ', 'org.example') props.artifactId = ask(' artifactId [maven-simple]: ', 'maven-simple') props.version = ask('  [1.0-SNAPSHOT]: ', '1.0-SNAPSHOT') props.pkg = ask(" package   [$props.groupId]:", props.groupId) props.message = ask('   ? ', ', !') // processTemplates  ,     . processTemplates 'pom.xml', props //    String packageDir = props.pkg.replaceAll(/\./, '/') //     moveFileToDirectory(new File(targetDir, 'App.java'), new File(targetDir, "src/main/java/$packageDir"), true) //  processTemplates 'src/main/java/**/App.java', props 

    рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдмрддрд╛ рд░рд╣реА рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИред рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдЬреЛ рд╕рдВрднрд╡рддрдГ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ ask() рдФрд░ processTemplates() рд╡рд┐рдзрд┐рдпрд╛рдБ рдФрд░ uk.co.cacoethes.lazybones.LazybonesScript рдХреЛ uk.co.cacoethes.lazybones.LazybonesScript рдХреНрд▓рд╛рд╕ рд╕реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдорд┐рд▓рддрд╛ рд╣реИ, рдЬреЛ рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдПрдХ рдХрд╕реНрдЯрдо рд╕реБрдкрд░-рдХреНрд▓рд╛рд╕ рд╣реИ ред
  8. рдпрд╣ рд╕рдВрдЧреНрд░рд╣ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред Lazybones рдХреЗ рдкрд╛рд╕ Gradle рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдкреНрд▓рдЧрдЗрди рд╣реИ, рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рдирд┐рд░реНрдорд┐рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдЪрд░рдг 1 рдореЗрдВ рдЙрддреНрдкрдиреНрди рдХрд┐рдпрд╛ рдерд╛ред рдпрд╣ рдкреНрд▓рдЧрдЗрди рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп рдирд┐рдпрдореЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рд╕реНрдерд╛рдиреАрдп рдХреИрд╢ рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЯрд┐рдВрдЯ рдХреЛ Bintray рдореЗрдВ рддреИрдирд╛рдд рдХрд░рддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рд╣рдорд╛рд░рд╛ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдЧрдВрднреАрд░ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рдЗрд╕реЗ рдмрд┐рдВрдЯреНрд░реЗ рдкрд░ рдирд╣реАрдВ рд░рдЦрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдХреИрд╢ рдореЗрдВ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдирд╛ рдЕрдирд┐рд╡рд╛рд░реНрдп рд╣реИред рд╣рдо рд╡рд┐рдзрд╛рдирд╕рднрд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ:
    >gradlew installTemplateMavenSimple
    :packageTemplateMavenSimple
    :installTemplateMavenSimple

    BUILD SUCCESSFUL
  9. рдкрд░реАрдХреНрд╖рдг! рдПрдХ рдирдИ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рдПрдВ рдФрд░ рдЙрд╕рдореЗрдВ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕реЗ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирд╛рдПрдВ (рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣реА рджреЗрдЦрд╛ рд╣реИ):
    >lazybones create maven-simple 0.1 maven-simple

    Creating project from template maven-simple 0.1 in 'maven-simple'
    groupId [org.example]: com.demo
    artifactId [maven-simple]:
    [1.0-SNAPSHOT]: 0.1
    package [org.example]:org.simple
    ? , !

    -
    ---------------------------------
    . ? .

    Project created in maven-simple!

    рдЕрдВрдд рдореЗрдВ рд╕рдВрджреЗрд╢ рдЖрддрд╛ рд╣реИ, рдмреЗрд╢рдХ, readme.md ред рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ, рдореИрдВрдиреЗ artifactId рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ maven-simple рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░реЗрдВред
    рд╣рдо рдорд╛рд╡реЗрди-рд╕рд░рд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдкреНрд░рд╢рдВрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ:
     X pom.xml
     тФВ README.md
     тФВ
     тФФтФАтФАтФАsrc
         тФФтФАтФАтФАmain
             тФЬтФАтФАтФАjava
             тФФтФАтФАтФА тФФтФАтФАтФАorg
             Im imsimple
             Ava App.java
             тФВ
             тФФтФАтФАтФАresources
    

    Pom.xml рдЦреЛрд▓реЗрдВ:
     <project> <modelVersion>4.0.0</modelVersion> <groupId>com.demo</groupId> <artifactId>maven-simple</artifactId> <version>0.1</version> <build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>1.2.1</version> <executions> <execution> <phase>test</phase> <goals> <goal>java</goal> </goals> <configuration> <mainClass>org.simple.App</mainClass> <arguments> <argument>, !</argument> </arguments> </configuration> </execution> </executions> </plugin> </plugins> </build> </project> 

    рд╕рдм рдХреБрдЫ рдЬреИрд╕рд╛ рд╣реИ рд╡реИрд╕рд╛ рд╣реА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред App.java рдЦреЛрд▓реЗрдВ:
     package org.simple; public class App { public static void main(String[] args) { System.out.println(args[0]); } } 

    рд╡рд╣реА рдХреНрд░рдоред рдорд╛рд╡реЗрди рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ:
     > рдорд╛рд╡рди рдкрд░реАрдХреНрд╖рдг
     [рдЬрд╛рдирдХрд╛рд░реА] рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕реНрдХреИрдирд┐рдВрдЧ ...
     [рдЬрд╛рдирдХрд╛рд░реА]
     [рдЬрд╛рдирдХрд╛рд░реА] ----------------------------------------------- -------------------------
     [рдЬрд╛рдирдХрд╛рд░реА] рдмрд┐рд▓реНрдбрд┐рдВрдЧ рдорд╛рд╡реЗрди-рд╕рд░рд▓ реж.рез
     [рдЬрд╛рдирдХрд╛рд░реА] ----------------------------------------------- -------------------------
     [рдЬрд╛рдирдХрд╛рд░реА]
     [рдЬрд╛рдирдХрд╛рд░реА] --- рдорд╛рд╡реЗрди-рд╕рдВрд╕рд╛рдзрди-рдкреНрд▓рдЧрдЗрди: реи.рем: рд╕рдВрд╕рд╛рдзрди (рдбрд┐рдлрд╝реЙрд▓реНрдЯ-рд╕рдВрд╕рд╛рдзрди) @ рдорд╛рд╡реЗрди-рд╕рд░рд▓ ---
     [рдЬрд╛рдирдХрд╛рд░реА] реж рд╕рдВрд╕рд╛рдзрди рдХреА рдирдХрд▓ рдХрд░рдирд╛
     [рдЬрд╛рдирдХрд╛рд░реА]
     [рдЬрд╛рдирдХрд╛рд░реА] --- рдорд╛рд╡реЗрди-рд╕рдВрдХрд▓рдХ-рдкреНрд▓рдЧрдЗрди: реи.рел.рез: рд╕рдВрдХрд▓рди (рдбрд┐рдлрд╝реЙрд▓реНрдЯ-рд╕рдВрдХрд▓рди) @ рдорд╛рд╡реЗрди-рд╕рд░рд▓ ---
     [рдЬрд╛рдирдХрд╛рд░реА] рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдирд╣реАрдВ - рд╕рднреА рдХрдХреНрд╖рд╛рдПрдВ рдЕрдк рдЯреВ рдбреЗрдЯ рд╣реИрдВ
     [рдЬрд╛рдирдХрд╛рд░реА]
     [рдЬрд╛рдирдХрд╛рд░реА] --- рдорд╛рд╡реЗрди-рд╕рдВрд╕рд╛рдзрди-рдкреНрд▓рдЧрдЗрди: реи.рем: рдкрд░реАрдХреНрд╖рдг-рд╕реНрд░реЛрдд (рдбрд┐рдлрд╝реЙрд▓реНрдЯ-рдкрд░реАрдХреНрд╖рдг-рд╕реНрд░реЛрдд) @ рдорд╛рд╡реЗрди-рд╕рд░рд▓ ---
     [рдЬрд╛рдирдХрд╛рд░реА]
     [INFO] --- рдорд╛рд╡реЗрди-рдХрдВрдкрд╛рдЗрд▓рд░-рдкреНрд▓рдЧрдЗрди: 2.5.1: testCompile (рдбрд┐рдлрд╝реЙрд▓реНрдЯ-testCompile) @ рдорд╛рд╡реЗрди-рд╕рд░рд▓ ---
     [рдЬрд╛рдирдХрд╛рд░реА] рд╕рдВрдХрд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕реНрд░реЛрдд рдирд╣реАрдВ
     [рдЬрд╛рдирдХрд╛рд░реА]
     [рдЬрд╛рдирдХрд╛рд░реА] --- рдорд╛рд╡реЗрди-рдЕрдЪреВрдХ-рдкреНрд▓рдЧрдЗрди: реи.резреи.рек: рдкрд░реАрдХреНрд╖рдг (рдбрд┐рдлрд╝реЙрд▓реНрдЯ-рдкрд░реАрдХреНрд╖рдг) @ рдорд╛рд╡реЗрди-рд╕рд░рд▓ ---
     [рдЬрд╛рдирдХрд╛рд░реА] рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВред
     [рдЬрд╛рдирдХрд╛рд░реА]
     [рдЬрд╛рдирдХрд╛рд░реА] >>> рдирд┐рд╖реНрдкрд╛рджрди-рдорд╛рд╡реЗрди-рдкреНрд▓рдЧрдЗрди: 1.2.1: рдЬрд╛рд╡рд╛ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ) @ рдорд╛рд╡реЗрди-рд╕рд░рд▓ >>>
     [рдЬрд╛рдирдХрд╛рд░реА]
     [рдЬрд╛рдирдХрд╛рд░реА] <<< рдирд┐рд╖реНрдкрд╛рджрди-рдорд╛рд╡реЗрди-рдкреНрд▓рдЧрдЗрди: рез.реи.рез: рдЬрд╛рд╡рд╛ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ) @ рдорд╛рд╡реЗрди-рд╕рд░рд▓-рдЕрдВрдЧреНрд░реЗрдЬрд╝реА
     [рдЬрд╛рдирдХрд╛рд░реА]
     [рдЬрд╛рдирдХрд╛рд░реА] --- рдирд┐рд╖реНрдкрд╛рджрди-рдорд╛рд╡реЗрди-рдкреНрд▓рдЧрдЗрди: рез.реи.рез: рдЬрд╛рд╡рд╛ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ) @ рдорд╛рд╡реЗрди-рд╕рд░рд▓ ---
     рд╣реЗрд▓реЛ, рд╣реЗрдмреНрд░!
     [рдЬрд╛рдирдХрд╛рд░реА] ----------------------------------------------- -------------------------
     [рдЬрд╛рдирдХрд╛рд░реА] рдирд┐рд░реНрдорд╛рдг рд╕рдлрд▓рддрд╛
     [рдЬрд╛рдирдХрд╛рд░реА] ----------------------------------------------- -------------------------
     [рдЬрд╛рдирдХрд╛рд░реА] рдХреБрд▓ рд╕рдордп: 0.768s
     [рдЬрд╛рдирдХрд╛рд░реА] рдкрд░ рд╕рдорд╛рдкреНрдд: рд╢реБрдХреНрд░ режрек рдЕрдкреНрд░реИрд▓ режреи:режрек:режрек реирежрезрек
     [рдЬрд╛рдирдХрд╛рд░реА] рдЕрдВрддрд┐рдо рдореЗрдореЛрд░реА: / рдПрдо / рейрежрек рдПрдо
     [рдЬрд╛рдирдХрд╛рд░реА] ----------------------------------------------- -------------------------
    


рд╡рд╣ рд╕рдм рд╣реИред рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЖрдк рд╕рд╛рджрдЧреА рдФрд░ рдЕрдиреБрдЧреНрд░рд╣ рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реЛрдВрдЧреЗ рдФрд░ рджреЛрдиреЛрдВ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд╕реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЦреБрдж рдХреЛ рд▓реЗрдЬрд╝реАрдмреЛрдиреНрд╕ рдореЗрдВ рдЯреЗрдореНрдкрд▓реЗрдЯ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВред рдпрд╣ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрди рд╕рд╛рджрдЧреА рдФрд░ рдЕрдиреБрдЧреНрд░рд╣ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЧреНрд░реВрд╡реА рдХреЛ рдзрдиреНрдпрд╡рд╛рдж рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдорд╛рдпрдиреЛрдВ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд╣реИред

рдмреЗрд╢рд░реНрдо рдкреАрдЖрд░, рдЖрдк рдкрдврд╝ рдирд╣реАрдВ рд╕рдХрддреЗ
рдпрджрд┐ рдЖрдк рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЖрдк рдЕрдиреБрдЧреНрд░рд╣ рдФрд░ рд╕рд╛рджрдЧреА рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдореБрдЭрд╕реЗ рд╕рд╣рдордд рд╣реИрдВ, рдФрд░ рдпрджрд┐ рдЖрдк рд╕реНрд╡рдпрдВ рдереЛрдбрд╝рд╛ рдЧреНрд░реВрд╡ рд╕реАрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ 15 рдЕрдкреНрд░реИрд▓ рдХреЛ рдХрдЬрд╝рд╛рди , рдпрд╛ 17 рдЕрдкреНрд░реИрд▓ рдХреЛ рдорд╛рд╕реНрдХреЛ рдореЗрдВ рдореЗрд░реЗ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдкрд░ рдЖрдПрдВред рдореИрдВ рдЧреНрд░реВрд╡реА рдмрдиреНрд╕ рдХреЛ рдкрдврд╝рд╛рдиреЗ рдХрд╛ рд╡рд╛рджрд╛ рдХрд░рддрд╛ рд╣реВрдВред

Source: https://habr.com/ru/post/In218205/


All Articles