рд▓рдЧрднрдЧ рдХрд┐рд╕реА рднреА рдЬрд╛рд╡рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдиреЗ рдЕрдкрдиреЗ рдЬреАрд╡рди рдореЗрдВ RestController рд▓рд┐рдЦрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдХреБрдЫ рд▓реЛрдЧ рдЖрд╢реНрдЪрд░реНрдп рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рд╡рд╣ рд╕рд╣реА рдХрд░рддрд╛ рд╣реИред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рдЖрдк рдПрдХ рдЕрдиреБрднрд╡реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдРрд╕реЗ рдкреНрд░рд╢реНрди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдореИрдВ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред рдЗрд╕ рддрд░рд╣ рдХреЗ рдврд╛рдВрдЪреЗ рдореЗрдВ рд╕реНрдкреНрд░рд┐рдВрдЧ рдмреВрдЯ рд╕рдВрд╕реНрдХрд░рдг 1.5 рдФрд░ 2.0 рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдХреНрд╡рд╛рд░реНрдХрд╕ рдЬреИрд╕реЗ рдлреНрд░реЗрдорд╡рд░реНрдХ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВрдЧреЗ - рд▓рд╛рд▓ рдЯреЛрдкреА рдХреЗ рд╕рд╛рде рд╡рд╕рдВрдд рдмреВрдЯ рдХреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рддрд┐рджреНрд╡рдВрджреНрд╡реАред

рд╕рдорд╕реНрдпрд╛
рдЬрд╛рд╡рд╛ рдФрд░ рд╕реНрдкреНрд░рд┐рдВрдЧ рдмреВрдЯ 1.5 рдореЗрдВ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд┐рдпрд╛ рдЧрдпрд╛ред рд▓реЗрдХрд┐рди рдПрдХ рдирдИ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА:
- рдореЗрд░реЗ рдкрд╛рд╕ 1600 рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╕рди рд╣реИ, рдХреБрдЫ рд╡рд░реНрдЧреЛрдВ рдореЗрдВ 100 рдХреНрд╖реЗрддреНрд░ рд╣реИрдВ
- рдореИрдВ рдХреЛрдЯрд▓рд┐рди рдФрд░ рдХреНрд╡рд╛рд░реНрдХрд╕ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред
- рдПрдХ рдЖрд░рд╛рдо рдирд┐рдпрдВрддреНрд░рдХ рд▓рд┐рдЦреЗрдВ рдЬреЛ рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рдмрд┐рдирд╛ рдФрд░ рд▓реЛрдмреЛрдХ рдЬрд╛рджреВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд┐рдП рдмрд┐рдирд╛ рдХреЛрдЯрд▓рд┐рди рдбреЗрдЯрд╛ рд╡рд░реНрдЧ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛ред рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдбреЗрдЯрд╛ рд╡рд░реНрдЧ рдЫреЛрдЯрд╛ рд╣реЛ
рдЖрдкрдиреЗ рд╢рд╛рдпрдж рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдпрд╛ рдХрд┐ рдХреЛрдЯрд▓рд┐рди рдбреЗрдЯрд╛ рд╡рд░реНрдЧ рдПрдХ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╡рд░реНрдЧ рд╣реИ, рдпрд╛ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╣реИред рдПрдХ рд╡рд░реНрдЧ рдЬрд┐рд╕рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛ рдореЗрдВ рд╕рднреА рдХреНрд╖реЗрддреНрд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдореИрдВ рдЗрд╕ рддрд░рд╣ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдореЗрдВ рдПрдХ рдмрдбрд╝рд╛ рдЖрд╕реНрддрд┐рдХ рд╣реВрдВ; рдПрдХ рд╡рд░реНрдЧ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдЗрд╕реЗ рдмрджрд▓рд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рдореЗрдВ рдХреЛрдИ рдмрд╕рдиреЗ рд╡рд╛рд▓реЗ рдирд╣реАрдВ рд╣реИрдВред рдЬреИрд╕рд╛ рдХрд┐ рджреБрдирд┐рдпрд╛ рдореЗрдВ docker рдХреА рдЗрдореЗрдЬ рдХреЛ рдмрджрд▓рд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХрдВрдЯреНрд░реЛрд▓рд░ рдореЗрдВ рдЧрд┐рд░реА рд╣реБрдИ рддрд╛рд░реАрдЦ рдХреБрдЫ рдРрд╕реА рд╣реИ рдЬрд┐рд╕реЗ рдмрджрд▓рд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЖрдЗрдП рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд╕рдВрднрд╛рд╡рд┐рдд рддрд░реАрдХреЛрдВ рдХреЛ рджреЗрдЦреЗрдВ, рдФрд░ рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ рдХрд┐ рдХреИрд╕реЗ рдЖрдзреБрдирд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЖрдк рдПрдХ рдирд┐рдпрдВрддреНрд░рдХ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ:
рдорд╛рдирдХ рд╡рд┐рдХрд▓реНрдкред рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╡рд╕рдВрдд рдпрд╛ рд╡рд╕рдВрдд рдмреВрдЯ 1.5 рдкрд░
рдмрд╛рдХреА рдирд┐рдпрдВрддреНрд░рдХ рдмрд╣реБрдд рд╕рдордп рдкрд╣рд▓реЗ рджрд┐рдЦрд╛рдИ рджрд┐рдП, рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдЬрд╛рд╡рд╛ рдореЗрдВ рдЙрдирдХреЗ рдЙрдкрдпреЛрдЧ рдХрд╛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрджрд╛рд╣рд░рдг рд╣реИ, рдЬреЛ рд╕рднреА рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ рд╣реИред
рд╣рдо рдмрд╕ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдирд┐рдпрдВрддреНрд░рдХ рдмрдирд╛рддреЗ рд╣реИрдВ
@RestController public class FruitController { @PostMapping("/fruit") public void greeting(@RequestBody Fruit request) { System.out.println(request); } }
рдФрд░ рдПрдХ POJO (рд╕рд╛рджрд╛ рдкреБрд░рд╛рдирд╛ рдЬрд╛рд╡рд╛ рдСрдмреНрдЬреЗрдХреНрдЯ) рдмрдирд╛рдПрдВ
public class Fruit { public String name; public String description; public Fruit() { } public Fruit(String name, String description) { this.name = name; this.description = description; } }
рдирд┐рдЬреА рдХреНрд╖реЗрддреНрд░реЛрдВ рдФрд░ рдЧреЗрдЯрд░реНрд╕ / рд╕реЗрдЯрд░ рдпрд╛ рд▓рд╛рдореНрдмреЙрдХ рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рд╕рд╛рде рднрд┐рдиреНрдирддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдмрд┐рдВрджреБ рдирд╣реАрдВред
рдорд╣рд╛рди, рд╣рдордиреЗ рдкрд╣рд▓рд╛ рдЖрд░рд╛рдо рдирд┐рдпрдВрддреНрд░рдХ рдмрдирд╛рдпрд╛ рдЬреЛ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред 90% рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП, рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдкред рдЖрдк рдпрд╣рд╛рдВ рд░рд╣ рд╕рдХрддреЗ рд╣реИрдВред
рд╕рдорд╕реНрдпрд╛рдПрдВ:
рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдЕрд╡рдзрд╛рд░рдгрд╛ рдЯреВрдЯ рдЧрдИ рд╣реИред
рдПрдХ рдмрд┐рдЯ рдХреНрд░рд┐рдпрд╛ рдбреЗрдЯрд╛ рд╡рд░реНрдЧредрдХреНрдпрд╛ рд╣рдо рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ?
рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЛ рд╣рдЯрд╛рдиреЗ рдФрд░ рд╡рд░реНрдЧ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд╣реЛрдЧрд╛ред
@Getter public class Fruit { private String name; private String description;
рд▓реЗрдХрд┐рди рдЕрдм рдПрдХ рд╕рдорд╕реНрдпрд╛ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИ, рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдкреБрд╕реНрддрдХрд╛рд▓рдп (рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рдЬреИрдХрд╕рди) рд╡рд░реНрдЧ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рджрд┐рдЦрд╛рдИ рджреЗрдЧреА рдЬреИрд╕реЗ
рдХреЛрдИ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдирд┐рд░реНрдорд╛рддрд╛ рдирд╣реАрдВ рдорд┐рд▓рд╛редрдЗрд╕рд▓рд┐рдП рдЬреИрдХрд╕рди рдиреЗ рдкрд╣рд▓реЗ
рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдмрд┐рдирд╛ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд░реНрдЧ рдмрдирд╛рдпрд╛, рдФрд░ рдлрд┐рд░ рдЧреЗрдЯрдЯрд░ / рд╕реЗрдЯрд░ рдХрд╣рд╛ ред рдХреНрдпрд╛ рдЦреМрдл рд╣реИред рдЖрдЦрд┐рд░, рдХреНрдпрд╛ рд╕рднреА рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рд╣реИ? рд▓реЗрдХрд┐рди рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЬрдм рдХрдХреНрд╖рд╛ рд╕рдВрдХрд▓рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ, рддреЛ рдкреИрд░рд╛рдореАрдЯрд░ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреЗ рд╣реИрдВред
рдпрд╛рдиреА рд░рдирдЯрд╛рдЗрдо рдореЗрдВ, рдЬрд╛рд╡рд╛ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рдкреИрд░рд╛рдореАрдЯрд░ рдирд╛рдореЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рд╣реИред рд╕рдВрдХрд▓рдХ рдЙрдиреНрд╣реЗрдВ рдЦреЛ рджреЗрддрд╛ рд╣реИредрджреВрд╕рд░рд╛ рд╡рд┐рдХрд▓реНрдк рдореЛрдХреНрд╖ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд╕рдВрдд рдпрд╛ рд╡рд╕рдВрдд рдмреВрдЯ 1.5 + рдПрдиреЛрдЯреЗрд╢рди рд╣реИ
рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рд╣рдо рдПрдХ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╡рд░реНрдЧ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдФрд░ рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдЬреИрдХреНрд╕рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рддрдм рдмрдЪрд╛рд╡ рдХреЗ рд▓рд┐рдП рдПрдирд╛рдЯреЛрдЯреЗрд╢рди рдЖрддрд╛ рд╣реИред
@Getter public class Fruit { private String name; private String description; @JsonCreator public Fruit(@JsonProperty("name") String name, @JsonProperty("description")String description) { this.name = name; this.description = description; } }
рдлрд┐рд▓рд╣рд╛рд▓, рдмреВрдЯ 1.5 рд╕реНрдкрд┐рдВрдЧ рдкрд░ рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ, рдпреЗ рдПрдиреЛрдЯреЗрд╢рди рд╕рдЪрдореБрдЪ рд╕рдм рдХреБрдЫ рд╕реЗ рднрд░рд╛ рд╣реБрдЖ рд╣реИред
рдФрд░ рдЕрдЧрд░ рдЖрдк рд▓реЛрдХрдкреНрд░рд┐рдп
jsonschema2pojo рдЬрдирд░реЗрдЯрд░
рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдФрд░ рднреА рдПрдиреЛрдЯреЗрд╢рди рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛ред рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ, рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд░рддрд╛ред
рд╡рд╣рд╛рдВ рдХреЙрдкреА рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ:
{ "description": "description", "name": "name" }
рд╣рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдЙрддреНрдкрд╛рджрди рдореЗрдВ (рдЖрдк рд╕реНрдХреНрд╡рд┐рдВрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлреНрд▓рд┐рдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)
@JsonInclude(JsonInclude.Include.NON_NULL) @JsonPropertyOrder({ "description", "name" }) public class Example { @JsonProperty("description") private String description; @JsonProperty("name") private String name; @JsonProperty("description") public String getDescription() { return description; } @JsonProperty("description") public void setDescription(String description) { this.description = description; } @JsonProperty("name") public String getName() { return name; } @JsonProperty("name") public void setName(String name) { this.name = name; } }
рд╡рд┐рдкрдХреНрд╖:
рдПрдиреЛрдЯреЗрд╢рди рдмрд╣реБрдд рд╡рд░реНрдЧ рдХреЛ рдлреБрд▓рд╛рддреЗ рд╣реИрдВред рдПрдХ рд╢реМрдХрд┐рдпрд╛ рдХреЗ рд▓рд┐рдП, рдмрд╣реБрдд рд╡рд░реНрдмреЛрдЬрд╝редрддреАрд╕рд░рд╛ рд╡рд┐рдХрд▓реНрдк рд╡рд╕рдВрдд рдпрд╛ рд╡рд╕рдВрдд рдмреВрдЯ 1.5 + рд▓реЛрдмреЛрдХ рдзреНрд╡рдЬ
рдзрдиреНрдпрд╡рд╛рдж
рдереНрд░реЛрдмрд▓ рдореИрдВ рдЯрд┐рдкреНрдкрдгреА рд╕реЗ рдЙрджреНрдзреГрдд рдХрд░реВрдВрдЧрд╛:
"рдпрджрд┐ рдЖрдк рд▓реЛрдореНрдмреЛрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реИ lombok.config рдореЗрдВ рд▓рд┐рдЦрдирд╛:
lombok.allArgsConstructor.addConstructorProperties = true
рдпрд╣ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░
@java.beans.ConstructorProperties
рдкрд░ рдЙрддреНрдкрдиреНрди рд╣реЛрдЧрд╛, рдЬрд┐рд╕реЗ рдЬреИрдХреНрд╕рди рдХреЛ рд╕рдордЭрдирд╛ рд╣реИред тАЭ
рдмрдврд╝рд┐рдпрд╛ рд╡рд┐рдХрд▓реНрдкред рд╡рд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдореБрдЭреЗ рдПрдиреЛрдЯреЗрд╢рди рдХреА рдХреНрд░рд┐рдпрд╛ рд╕реЗ рдмрдЪрд╛рдПрдЧрд╛ред
рд╡рд┐рдкрдХреНрд╖:
рд▓реЗрдХрд┐рди рдореИрдВ рдХреЛрдорд▓рд┐рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрд┐рдирд╛ рд▓реБрдореНрдмреЛрдХ рдХреЗ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред
рдореИрдВрдиреЗ рдЗрд╕ рд╡рд┐рдХрд▓реНрдк рдХреЛ рдмрд╣реБрдд рджреЗрд░ рд╕реЗ рд╕реАрдЦрд╛редрд╕реНрдкреНрд░рд┐рдВрдЧ рдмреВрдЯ 2.0 рдХрд╛ рдЪреМрдерд╛ рд╕рдВрд╕реНрдХрд░рдг
@Getter public class Fruit { private String name; private String description; public Fruit( String name, String description) { this.name = name; this.description = description; } }
рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд░реВрдк рд╕реЗ, рд╕реНрдкреНрд░рд┐рдВрдЧ рдмреВрдЯ 2.0 рдРрд╕реЗ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╡рд░реНрдЧ рдХреЗ рд╕рд╛рде рдЪреБрдкрдЪрд╛рдк рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдФрд░ рдЕрдкрдиреЗ рдЬреБрдбрд╝рд╡рд╛рдВ рднрд╛рдИ рдХреЛрдЯрд▓рд┐рди рдбреЗрдЯрд╛ рдХреНрд▓рд╛рд╕ рдХреЗ рд╕рд╛рде рднреА
data class Fruit( val name : String, val description : String)
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд░рдирдЯрд╛рдЗрдо рдореЗрдВ рдЬрд╛рд╡рд╛ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рдкреИрд░рд╛рдореАрдЯрд░ рдирд╛рдореЛрдВ рдХреЛ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рд╕реНрдкреНрд░рд┐рдВрдЧ рдмреВрдЯ 2 рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдбреЗрдЯрд╛ рд╡рд░реНрдЧ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛рдПред рддреЛ, рд╡рд╕рдВрдд-рдмреВрдЯ-рд╕реНрдЯрд╛рд░реНрдЯрд░-рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЛ рджреЗрдЦреЗрдВ, рдХреЛрдЯрд▓рд┐рди рд╕рдорд░реНрдерди рд╡рд╣рд╛рдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИред
<plugin> <groupId>org.jetbrains.kotlin</groupId> ... <configuration> <javaParameters>true</javaParameters> </configuration> </plugin> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <parameters>true</parameters> </configuration> </plugin>
рдореИрдВ рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдХрд░рддрд╛ рд╣реВрдВред
рд░рдирдЯрд╛рдЗрдо рдХреЗ рджреМрд░рд╛рди рдЦреЛ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХреНрд▓рд╛рд╕ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рдкреИрд░рд╛рдореАрдЯрд░ рдирд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП, рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ javac -parameters рдлреНрд▓реИрдЧ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдФрд░ рд╕реНрдкреНрд░рд┐рдВрдЧ рдмреВрдЯ 2.0 рдРрд╕рд╛ рдХрд░рддрд╛ рд╣реИред
рд╕реНрдкреНрд░рд┐рдВрдЧ рдмреВрдЯ 2 рдкрд░ рдирдореВрдирд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ред
рдкрд╛рдБрдЪрд╡рд╛рдБ рд╡рд┐рдХрд▓реНрдкред рдХреНрд╡рд╛рд░реНрдХрд╕ + рдХреЛрдЯрд▓рд┐рди
рдХреНрд╡рд╛рд░реНрдХрд╕ рдореЗрдВ
рдПрдХ рдЖрд░рд╛рдо рд╕реЗрд╡рд╛ рдХрд╛
рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ , рдореЗрд░реЗ рдкрд╣рд▓реЗ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдПрдХ рдПрдирд╛рд▓реЙрдЧред рдпрд╛рдиреА рдмрд╛рдХреА рдкреБрд░рд╛рдиреЗ рддрд░реАрдХреЗ рд╕реЗ рдирд┐рдпрдВрддреНрд░рдХред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдХреЛрдЯрд▓рд┐рди рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЭрдВрдбреЗ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ рдЬреИрд╕рд╛ рдХрд┐ рд╡рд╕рдВрдд рдмреВрдЯ 2 рдиреЗ рдХрд┐рдпрд╛ рдерд╛ред
рдпрд╣рд╛рдБ рд╕рдорд╕реНрдпрд╛
рдХрд╛ рд╡рд░реНрдгрдиред
рдпрд╣рд╛рдБ рдХреНрд╡рд╛рд░реНрдХрд╕ рдореЗрдВ рдХреЛрдЯрд▓рд┐рди рдбреЗрдЯрд╛ рдХреНрд▓рд╛рд╕ рд╕рдкреЛрд░реНрдЯ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг
рд╣реИ ред
рдирд┐рд╖реНрдХрд░реНрд╖
рдЖрдк рд░реЗрд╕реНрдЯ рдХрдВрдЯреНрд░реЛрд▓рд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕рд░рд▓ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдХрдХреНрд╖рд╛рдУрдВ рдХреА рдУрд░ рдмрдврд╝рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреВрдВрдЧрд╛ред рдХреЛрдЯрд▓рд┐рди рдкрд░ рд▓рд┐рдЦреЗрдВ рдФрд░ рдЖрдкрдХреЛ рд▓реБрдореНрдмреЛрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред рдХреЛрдб рдЖрд╕рд╛рди рдФрд░ рдЖрд╕рд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рд╡рд╕рдВрдд рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛ рдЬрд╛рдирдмреВрдЭрдХрд░ рд╕рдВрдХрд▓рдХ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ
рдЬреЗрд╡реИрдХ -рдкреНрд░реЗрдореЗрдЯрд░реНрд╕ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЧрдП рдереЗ рдФрд░ рдЗрд╕рдореЗрдВ рдХреЛрдИ рдЕрдкрд░рд╛рдз рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдкрд░рдлреЗрдХреНрдЯ рдХреЛрдб рдХреЗ рд░рд╛рд╕реНрддреЗ рдкрд░ рд╕рднреА рдХреЛ рд╢реБрднрдХрд╛рдордирд╛рдПрдБред
рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рд╕рднреА рдХрд╛ рдзрдиреНрдпрд╡рд╛рдж!