maven рдЧреБрдгрдзрд░реНрдо

рдЙрдкрд▓рдмреНрдз

7.1 Maven рдордзреАрд▓ рдЪрд▓ - рдЧреБрдгрдзрд░реНрдо

рдорд╛рд╡реЗрди рддреБрдореНрд╣рд╛рд▓рд╛ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕рдордзреНрдпреЗ рдареЗрд╡рдгреНрдпрд╛рдЪреА рдЕрдиреБрдорддреА рджреЗрддреЗ рд╡рд╛рд░рдВрд╡рд╛рд░ рдЖрдврд│рдгрд╛рд░реЗ рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕. рдЬреЗрд╡реНрд╣рд╛ рддреБрдореНрд╣рд╛рд▓рд╛ pom рдлрд╛рдЗрд▓рдЪреНрдпрд╛ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рднрд╛рдЧрд╛рдВрдордзреНрдпреЗ рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕ рдЬреБрд│рд╡рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрд╕рддреЗ рддреЗрд╡реНрд╣рд╛ рд╣реЗ рдЦреВрдк рдЙрдкрдпреБрдХреНрдд рдЖрд╣реЗ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рддреБрдореНрд╣реА Java рдЖрд╡реГрддреНрддреА, рд▓рд╛рдпрдмреНрд░рд░реА рдЖрд╡реГрддреНрддреНрдпрд╛, рдард░рд╛рд╡рд┐рдХ рд╕рдВрд╕рд╛рдзрдирд╛рдВрдЪреЗ рдорд╛рд░реНрдЧ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓рдордзреНрдпреЗ рдареЗрд╡реВ рд╢рдХрддрд╛.

рдпрд╛рд╕рд╛рдареА, рдордзреНрдпреЗ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╡рд┐рднрд╛рдЧ рдЖрд╣реЗ pom.xml тАУ <properties>, рдЬреНрдпрд╛рдордзреНрдпреЗ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕ рдШреЛрд╖рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд. рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓рдЪреЗ рд╕рд╛рдорд╛рдиреНрдп рд╕реНрд╡рд░реВрдк рдЦрд╛рд▓реАрд▓рдкреНрд░рдорд╛рдгреЗ рдЖрд╣реЗ:

<variable-name> _ _ _ _meaning< / variable name > _

рдЙрджрд╛рд╣рд░рдг:

<properties>
    <junit.version>5.2</junit.version>
    <project.artifactId>new-app</project.artifactId>
    <maven.compiler.source>1.13</maven.compiler.source>
    <maven.compiler.target>1.15</maven.compiler.target>
</properties>

рднрд┐рдиреНрди рд╡рд╛рдХреНрдпрд░рдЪрдирд╛ рд╡рд╛рдкрд░реВрди рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕рдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ:

$ { variable -name } _

рдЬреЗрдереЗ рдЕрд╕рд╛ рдХреЛрдб рд▓рд┐рд╣рд┐рд▓реЗрд▓рд╛ рдЕрд╕реЗрд▓ рддреЗрдереЗ Maven рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓рдЪреЗ рдореВрд▓реНрдп рдмрджрд▓реЗрд▓.

рдЙрджрд╛рд╣рд░рдг:

<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>${junit.version}</version>
        <scope>test</scope>
    </dependency>
</dependencies>
 
<build>
    <finalName>${project.artifactId}</finalName>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>2.3.2</version>
        <configuration>
            <source>${maven.compiler.source}</source>
            <target>${maven.compiler.target}</target>
        </configuration>
    </plugin>
</build>

7.2 Maven рдордзреНрдпреЗ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдЪрд▓

рдкреЙрдо рдлрд╛рдЗрд▓рдордзреНрдпреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯрдЪреЗ рд╡рд░реНрдгрди рдХрд░рддрд╛рдирд╛, рддреБрдореНрд╣реА рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕ рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛. рддреЗ рд╕рд╢рд░реНрддрдкрдгреЗ рдЕрдиреЗрдХ рдЧрдЯрд╛рдВрдордзреНрдпреЗ рд╡рд┐рднрд╛рдЧрд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд:

  • рдЕрдВрдЧрднреВрдд рдкреНрд░рдХрд▓реНрдк рдЧреБрдгрдзрд░реНрдо;
  • рдкреНрд░рдХрд▓реНрдк рдЧреБрдгрдзрд░реНрдо;
  • рд╕реЗрдЯрд┐рдВрдЧреНрдЬ.

рдлрдХреНрдд рджреЛрди рдЕрдВрдЧрднреВрдд рдкреНрд░рдХрд▓реНрдк рдЧреБрдгрдзрд░реНрдо рдЖрд╣реЗрдд:

рдорд╛рд▓рдорддреНрддрд╛ рд╡рд░реНрдгрди
${basedir} рдкреНрд░рдХрд▓реНрдк рд░реВрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреБрдареЗpom.xml
${рдЖрд╡реГрддреНрддреА} рдХреГрддреНрд░рд┐рдорддрд╛ рдЖрд╡реГрддреНрддреА; рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ ${project.version}рдХрд┐рдВрд╡рд╛${pom.version}

┬лproject┬╗рдкреНрд░рдХрд▓реНрдк рдЧреБрдгрдзрд░реНрдо рдХрд┐рдВрд╡рд╛ рдЙрдкрд╕рд░реНрдЧ рд╡рд╛рдкрд░реВрди рд╕рдВрджрд░реНрднрд┐рдд рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ ┬лpom┬╗. рдЖрдордЪреНрдпрд╛рдХрдбреЗ рддреНрдпрд╛рдкреИрдХреА рдЪрд╛рд░ рдЖрд╣реЗрдд:

рдорд╛рд▓рдорддреНрддрд╛ рд╡рд░реНрдгрди
${project.build.directory} ┬лtarget┬╗рдкреНрд░рдХрд▓реНрдк рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛
${project.build.outputDirectory} ┬лtarget┬╗рдХрдВрдкрд╛рдЗрд▓рд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛. рдбреАрдлреЙрд▓реНрдЯ┬лtarget/classes┬╗
${project.name} рдкреНрд░рдХрд▓реНрдкрд╛рдЪреЗ рдирд╛рд╡
${project.version} рдкреНрд░рдХрд▓реНрдк рдЖрд╡реГрддреНрддреА

settings.xmlрдЙрдкрд╕рд░реНрдЧ рд╡рд╛рдкрд░реВрди рдЧреБрдгрдзрд░реНрдорд╛рдВрдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдХреЗрд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ settings. рдирд╛рд╡реЗ рдХрд╛рд╣реАрд╣реА рдЕрд╕реВ рд╢рдХрддрд╛рдд - рддреЗ рд╡рд░реВрди рдШреЗрддрд▓реЗ рдЬрд╛рддрд╛рдд settings.xml. рдЙрджрд╛рд╣рд░рдг:

${settings.localRepository} sets the path to the local repository.
рдЯрд┐рдкреНрдкрдгреНрдпрд╛
  • рд▓реЛрдХрдкреНрд░рд┐рдп
  • рдирд╡реАрди
  • рдЬреБрдиреЗ
рдЯрд┐рдкреНрдкрдгреА рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рддреБрдореНрд╣реА рд╕рд╛рдИрди рдЗрди рдХреЗрд▓реЗрд▓реЗ рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ
рдпрд╛ рдкрд╛рдирд╛рд╡рд░ рдЕрдЬреВрди рдХреЛрдгрддреНрдпрд╛рд╣реА рдЯрд┐рдкреНрдкрдгреНрдпрд╛ рдирд╛рд╣реАрдд