Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° JDK
Π¨Π°Π³ 1: Π‘ΠΊΠ°ΡΠ°ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΎΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» Ρ ΡΠ°ΠΉΡΠ°
ΠΠ° ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΠΌΠ΅ΡΡΠΎΠ½Π°Ρ
ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π΄Π»Ρ ΡΠΊΠ°ΡΠΈΠ²Π°Π½ΠΈΡ JDK Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ Java SE Downloads
ΠΡΠΌΠ°Ρ, ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²Π·ΡΡΡ ΡΠ°ΠΌΡΠΉ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ JDK β Π² Π½Π°ΡΠ΅ΠΌ ΠΊΡΡΡΠ΅ ΡΡΠΎ JDK 1.7 update 3. ΠΠΎ Π΅ΡΠ΅ ΡΠ°Π· ΠΏΠΎΠ²ΡΠΎΡΡΡΡ β ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½ΡΡ
ΠΎΡΠ»ΠΈΡΠΈΠΉ Π² ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ Π²Ρ Π½Π΅ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅. ΠΠ°ΡΠ° Π·Π°Π΄Π°ΡΠ° β Π½Π°ΠΉΡΠΈ Π²Π΅ΡΡΠΈΡ JDK, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π½Π° Π²Π°Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ β Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ ΡΠ°Π·ΡΡΠ΄Π½ΠΎΡΡΡ.
Π¨Π°Π³ 2: Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ JDK ΠΈΠ· ΡΠ°ΠΉΠ»Π°
ΠΠ΄Π΅ΡΡ ΡΠΎΠΆΠ΅ ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ Π±ΡΡΡ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ β Ρ Π½Π΅ Π²ΠΈΠ΄Π΅Π» ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π²Π΅ΡΡΠΈΡΠΌΠΈ 1.4, 1.5, 1.6 ΠΈ 1.7. ΠΠ°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΡΠΊΠ°ΡΠ°Π½Π½ΡΠΉ ΡΠ°ΠΉΠ» ΠΈ ΠΏΠΎΡΠ»Π΅ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΡΡΠ°ΡΡΠΎΠ²ΡΠΉ ΡΠΊΡΠ°Π½ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ. ΠΠ°ΠΆΠΈΠΌΠ°Π΅ΠΌ Β«NextΒ».
ΠΠ° ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΠΊΡΠ°Π½Π΅ Π²Π°ΠΌ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ°Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ. ΠΠ½Π΅ Π±ΠΎΠ»ΡΡΠ΅ Π½ΡΠ°Π²ΠΈΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π½Π΅ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. (ΠΎΠ½Π° Π²ΡΠ΄Π΅Π»Π΅Π½Π° ΠΊΡΠ°ΡΠ½ΡΠΌ). ΠΠ°ΠΆΠΌΠΈΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ Β«Changeβ¦Β».
Π ΠΏΠΎΡΠ²ΠΈΠ²ΡΠ΅ΠΌΡΡ ΠΎΠΊΠ½Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ Β«C:\Java\jdk1.7.0_03Β». ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Ρ Π²Π°ΠΌ Π½Π°ΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΠΎΠ²Π΅ΡΡΡ Π²ΡΠ΄Π΅Π»ΠΈΡΡ ΡΡΠΎΡ ΠΏΡΡΡ ΠΈ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΡ Π΅Π³ΠΎ Π² Π±ΡΡΠ΅ΡΠ΅ ΠΎΠ±ΠΌΠ΅Π½Π° (ΡΡΡΡ ΠΏΠΎΠ·ΠΆΠ΅ ΠΌΡ ΠΈΠΌ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ). ΠΠ°Π»ΡΡΠ΅ ΠΆΠΌΠ΅ΠΌ Β«OKΒ».
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ Π² ΠΎΠΊΠ½Π΅. Π‘Π½ΠΎΠ²Π° Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡ Β«NextΒ».
Π§Π΅ΡΠ΅Π· Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° JDK ΠΏΠΎΡΡΠΈ Π·Π°ΠΊΠΎΠ½ΡΠΈΡΡΡ, Π½ΠΎ Π²Π°ΠΌ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ JRE (Java Runtime Environment). ΠΡ ΡΡΠΎ ΡΡΠ°Π·Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΠΏΠΎ ΡΠΎΡΠΌΠ΅, ΠΊΠΎΡΠΎΡΠ°Ρ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠΎΡΠ²ΠΈΡΡΡΡ. ΠΠ΄Π΅ΡΡ Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΌΠ΅Π½ΡΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ β ΡΠΌΠ΅Π»ΠΎ ΠΆΠΌΠ΅ΠΌ Β«NextΒ».
ΠΠ°ΠΊΠΎΠ΅-ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄ Π²Π°ΠΌΠΈ Π±ΡΠ΄Π΅Ρ ΡΠΊΡΠ°Π½, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ Π³ΠΎΠ²ΠΎΡΠΈΡΡΡΡ, ΡΡΠΎ 3 ΠΌΠΈΠ»Π»ΠΈΠ°ΡΠ΄Π° ΡΡΡΡΠΎΠΉΡΡΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Java.
Π Π½Π°ΠΊΠΎΠ½Π΅Ρ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅, ΡΡΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π°ΠΊΠΎΠ½ΡΠΈΠ»Π°ΡΡ.
Π Π²Π΅ΡΡΠΈΠΈ 1.7 ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π³ β Π²ΡΠ±ΠΎΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ JavaFX 2.0. Π£ Π²Π°Ρ ΠΏΠΎΡΠ²ΠΈΡΡΡΡ ΡΠΊΡΠ°Π½ Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠ° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ (ΠΌΠ½Π΅ Π½Π΅ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΠ»ΠΎΡΡ, ΠΊΠ°ΠΊ ΠΎΠ½ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½). ΠΠΎ Π² ΠΎΠ±ΡΠ΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ Π½Π°ΠΆΠΈΠΌΠ°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ Β«NextΒ». Π’.ΠΊ. Ρ ΠΏΠ»ΠΎΡ ΠΎ ΠΎΡΠ½ΠΎΡΡΡΡ ΠΊ Π΄ΠΈΡΠ΅ΡΠΎΡΠΈΡΠΌ Ρ ΠΏΡΠΎΠ±Π΅Π»ΠΎΠΌ, ΡΠΎ Ρ Π²ΡΠ±ΡΠ°Π» ΡΠ²ΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ.
Π¨Π°Π³ 3: Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΡΠ΅Π΄Ρ β JAVA_HOME ΠΈ PATH
ΠΠ° ΡΡΠΎΠΌ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π·Π°Π²Π΅ΡΡΠ΅Π½Π°. ΠΡΡΠ°Π½Π΅ΡΡΡ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π³ β ΠΏΡΠΎΠΏΠΈΡΠ°ΡΡ ΠΏΡΡΡ Π΄ΠΎ ΡΠ°ΠΉΠ»ΠΎΠ² JDK Π² ΠΏΡΡΡΡ
ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π½Π°ΠΌ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ β ΡΠ΄ΠΎΠ±Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ. Π ΡΠ°ΠΊΠΆΠ΅ ΠΌΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ JAVA_HOME β ΡΡΠΎ ΠΏΡΠ°Π²Π΄Π° Π½Π°ΠΌ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡ Π½Π΅ ΡΠΊΠΎΡΠΎ, Π½ΠΎ ΡΠ΄Π΅Π»Π°Π΅ΠΌ ΡΡΠΎ ΠΏΡΡΠΌΠΎ ΡΠ΅ΠΉΡΠ°Ρ. ΠΡΠΌΠ°Ρ, ΡΡΠΎ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΈΠ· Π²Π°Ρ Π·Π½Π°Π΅Ρ ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ. ΠΠΎ Π΄Π°Π²Π°ΠΉΡΠ΅ Π²ΡΠ΅-ΡΠ°ΠΊΠΈ ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π΅ΠΌ Π²ΠΌΠ΅ΡΡΠ΅. Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΠ‘ Windows 7.0 β ΠΏΠΎΡΡΠΎΠΌΡ Π±ΡΠ΄Ρ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π° Π½Π΅ΠΉ. Π ΠΌΠ΅Π½Ρ Β«ΠΡΡΠΊΒ» Π½Π°ΠΉΠ΄ΠΈΡΠ΅ ΠΏΡΠ½ΠΊΡ Β«ΠΠΎΠΌΠΏΡΡΡΠ΅ΡΒ» ΠΈ ΡΠ΅Π»ΠΊΠ½ΠΈΡΠ΅ Π½Π° Π½Π΅ΠΌ ΠΏΡΠ°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡΡΠΈ. Π ΠΏΠΎΡΠ²ΠΈΠ²ΡΠ΅ΠΌΡΡ ΠΌΠ΅Π½Ρ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΠΏΡΠ½ΠΊΡ Β«Π‘Π²ΠΎΠΉΡΡΠ²Π°Β». ΠΠΎΡΠ²ΠΈΡΡΡ ΠΎΠΊΠ½ΠΎ
ΠΡΠ±ΠΈΡΠ°Π΅ΠΌ ΠΏΡΠ½ΠΊΡ Β«ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡΒ» (Ρ Π²ΡΠ΄Π΅Π»ΠΈΠ» ΡΡΠΎΡ ΠΏΡΠ½ΠΊΡ). ΠΠΎΠ»ΡΡΠΈΠΌ ΠΎΠΊΠ½ΠΎ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π½Π°Π΄ΠΎ Π²ΡΠ±ΡΠ°ΡΡ ΠΏΡΠ½ΠΊΡ Β«ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΡΠ΅Π΄ΡΒ».
Π ΠΏΠΎΡΠ²ΠΈΠ²ΡΠ΅ΠΌΡΡ ΠΎΠΊΠ½Π΅ Π²Π°ΠΌ Π½Π°Π΄ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠ΄Π½Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ β Β«JAVA_HOMEΒ». Π ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Β«PathΒ». ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡ Β«Π‘ΠΎΠ·Π΄Π°ΡΡΒ».
ΠΠ°ΡΠΈΠ°Π½Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Β«JAVA_HOMEΒ» ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅. ΠΠΎΡ ΡΡΡ ΠΊΠ°ΠΊ ΡΠ°Π· ΠΈ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡ ΡΠ° ΡΡΡΠΎΠΊΠ°, ΠΊΠΎΡΠΎΡΡΡ Ρ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π» Π²Π°ΠΌ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡΡ ΠΏΡΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ JDK.
ΠΠ»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Β«PathΒ» ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ Π΅Π΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½Π΅ Π½Π°Π΄ΠΎ β ΠΎΠ½Π° ΡΠΆΠ΅ ΠΎΠ±ΡΡΠ½ΠΎ Π΅ΡΡΡ. Π’Π°ΠΊ ΡΡΠΎ Π½Π°Π΄ΠΎ Π΅Π΅ Π½Π°ΠΉΡΠΈ Π² ΡΠΏΠΈΡΠΊΠ΅ ΠΈ Π½Π°ΠΆΠ°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ Β«ΠΠ·ΠΌΠ΅Π½ΠΈΡΡΒ». ΠΠΎ Π±ΡΠ΄ΡΡΠ΅ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½Ρ β Π²ΠΎ-ΠΏΠ΅ΡΠ²ΡΡ
Π·Π΄Π΅ΡΡ Π½Π°Π΄ΠΎ Π²Π²ΠΎΠ΄ΠΈΡΡ ΡΡΡΠΎΠΊΡ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΡΡΠ°Π²ΠΈΠ² Β«;Β» Π² ΠΊΠΎΠ½ΡΠ΅ ΡΠΏΠΈΡΠΊΠ° Π²ΡΠ΅Ρ
ΠΏΡΡΠ΅ΠΉ. Π Π²ΠΎ-Π²ΡΠΎΡΡΡ
β Π½Π°Π΄ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΡΠΎΠΊΡ Β«\binΒ» ΠΏΠΎΡΠ»Π΅. ΠΡΠΈΠΌΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°Π½ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅.
Π Π΅ΡΠ΅ ΡΠ°Π· β ΠΠ£ΠΠ¬Π’Π ΠΠΠΠΠΠ’ΠΠΠ¬ΠΠ« ΠΏΡΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ PATH β ΠΎΠ½Π° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π²Π°ΠΆΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ. ΠΠ΅ Π½Π°Π΄ΠΎ Π΅Π΅ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ ΡΡΠΈΡΠ°ΡΡ ΠΈ ΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ²ΠΎΡ ΡΡΡΠΎΠΊΡ. ΠΠ°Π΄ΠΎ ΠΏΠΎΡΠ»Π΅ ΡΠΎΡΠΊΠΈ Ρ Π·Π°ΠΏΡΡΠΎΠΉ ΠΠΠΠΠΠΠ’Π¬ ΡΡΡΠΎΠΊΡ Π΄ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° Ρ JDK (+ ΡΡΡΠΎΠΊΠ° Β«\binΒ»). Π’.Π΅. Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ JDK ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³ C:\Java\jdk1.7, ΡΠΎ Π² PATH Π½Π°Π΄ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ (ΡΠ΅ΡΠ΅Π· Β«;Β») ΡΡΡΠΎΠΊΡ C:\Java\jdk1.7\bin.
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ ΡΠ΄Π΅Π»Π°Π»ΠΈ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΠ°Π³ΠΈ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ JDK β ΠΏΠΎΡΠ° ΠΏΡΠΈΡΡΡΠΏΠ°ΡΡ ΠΊ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠ°Π³ΠΈ
ΠΠ°ΡΠ°Π»ΠΎ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ Java EE
Π ΡΡΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ ΠΊΠ»Π°ΡΡ ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ ΠΈ ΡΠ°ΡΠ°Π΄ ΡΠ΅Π°Π½ΡΠ° Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠ° ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ. ΠΠ»Π°ΡΡ ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ β ΡΡΠΎ ΠΏΡΠΎΡΡΠΎΠΉ ΡΡΠ°ΡΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Java (Plain Old Java Object, POJO), ΠΏΡΠΎΡΡΠΎΠΉ ΠΊΠ»Π°ΡΡ Java, ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠ΅ΠΉ @Entity
ΠΊΠ°ΠΊ ΡΡΡΠ½ΠΎΡΡΡ. ΠΠ°ΡΠΈΠ½Π°Ρ ΡΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Java EE 5 ΠΊΠ»Π°ΡΡΡ ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Ρ ΡΠΎΡ
ΡΠ°Π½ΡΠ΅ΠΌΡΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ°Π±Π»ΠΈΡ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ
. ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Java Persistence API ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π² Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ
Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»Ρ EJB.
Π€Π°ΡΠ°Π΄ ΡΠ΅Π°Π½ΡΠ° Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠ° ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ Π² ΡΡΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅Π°Π½ΡΠ½ΡΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ Π±Π΅Π· ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ. ΠΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ° Enterprise JavaBean (EJB) 3.1, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½Π°Ρ ΠΊΠ°ΠΊ ΡΠ°ΡΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Java EE 6, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΡΠ΅Π°Π½ΡΠΎΠ² Π±Π΅Π· Π±ΠΈΠ·Π½Π΅Ρ-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΈΡΡ Π² EJB 3.0. Π‘ΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ Java EE 6 ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠΏΡΡΠΊΠ°Π΅Ρ ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² EJB Π½Π°ΠΏΡΡΠΌΡΡ Π² Π°ΡΡ
ΠΈΠ² WAR. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΡΠΎΠΌΡ ΡΠΏΡΠΎΡΠ°Π΅ΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π·Π° ΡΡΠ΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ
ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ EJB, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°ΠΏΠ°ΠΊΠΎΠ²ΡΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ Π°ΡΡ
ΠΈΠ² JAR Π² Π°ΡΡ
ΠΈΠ² EAR. ΠΠ΄Π½Π°ΠΊΠΎ Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ J2EE, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ Π½Π° ΡΠ°Π·Π½ΡΡ
ΠΌΠ°ΡΠΈΠ½Π°Ρ
, ΠΎΡΡΠ°Π΅ΡΡΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π² ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π°ΡΡ
ΠΈΠ²ΠΎΠ² EAR Π΄Π»Ρ ΠΎΡΠ΄Π΅Π»Π΅Π½ΠΈΡ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΎΡ ΡΡΠΎΠ²Π½Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ.
ΠΠΎΠ΄ΡΠΎΠ±Π½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎΠ± ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ EJB 3.1 Π² ΡΡΠ΅Π΄Π΅ IDE ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ Π² ΡΡΠ΅Π±Π½ΠΎΠΌ ΠΊΡΡΡΠ΅ Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ J2EE Ρ ΠΏΠΎΠΌΠΎΡΡΡ EJB 3.1.
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ ΠΊΠ»Π°ΡΡΠ°Ρ ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ ΡΠΌ. Π² Π³Π»Π°Π²Π΅ ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² API-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Java Π² Π£ΡΠ΅Π±Π½ΠΎΠΌ ΠΊΡΡΡΠ΅ ΠΏΠΎ Java EE 7.
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°Ρ ΡΠ΅Π°Π½ΡΠΎΠ² ΡΠΌ. Π² Π³Π»Π°Π²Π΅ Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΡΠ΅Π°Π½ΡΠ°? Π² Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΏΠΎ Java EE 7.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ° ΡΡΡΠ½ΠΎΡΡΠΈ
Π ΡΡΠΎΠΌ ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ°ΡΡΠ΅ΡΠ° ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠ° ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ ΠΏΡΠΎΡΡΠΎΠΉ ΠΊΠ»Π°ΡΡ ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ Ρ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΠΌΡΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ. Π’Π°ΠΊΠΆΠ΅ Π±ΡΠ΄Π΅Ρ ΠΎΠΏΠΈΡΠ°Π½ ΠΌΠ°ΡΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π±Π»ΠΎΠΊΠ° ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ Π΄Π°Π½Π½ΡΡ ΠΈ Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅Ρ ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. ΠΡΠ΄Π΅Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ ΠΎΠ΄Π½ΠΎ ΠΏΠΎΠ»Π΅ Π² ΠΊΠ»Π°ΡΡ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ ΠΈ ΡΠΎΠ·Π΄Π°Π½Ρ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π΄Π»Ρ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ.
ΠΠ»Π°ΡΡ ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅ΡΡ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΡΠΉ ΠΊΠ»ΡΡ. ΠΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΊΠ»Π°ΡΡΠ° ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ°ΡΡΠ΅ΡΠ° Π² ΡΡΠ΅Π΄Π΅ IDE ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΏΠΎΠ»Π΅ id
ΠΈ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ @Id
Π΄Π»Ρ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ°. Π’Π°ΠΊΠΆΠ΅ Π² ΡΡΠ΅Π΄Π΅ IDE Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ
@GeneratedValue
ΠΈ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠ»ΡΡΠ΅ΠΉ Π΄Π»Ρ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ id.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Java Persistence Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΡΠΈΠ»Ρ ΠΎΡΡΡΡΡΡΠ²ΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠΎΠ² ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΡΠ΅Π»ΡΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄Π»Ρ ΡΠΎΡ ΡΠ°Π½ΡΡΡΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΠΎΠ»Π΅ΠΉ ΠΈΠ»ΠΈ ΡΠ²ΠΎΠΉΡΡΠ². ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΡΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² ΠΏΡΠΎΡΡΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅ Java.
Π‘ΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ API EntityManager. ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ API EntityManager ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, Π° ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π³ΡΡΠΏΠΏΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠ°. ΠΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠΎΠ² ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ ΠΊ ΠΊΠ»Π°ΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ. Π Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ ΠΆΠΈΠ·Π½Π΅Π½Π½ΡΠΉ ΡΠΈΠΊΠ» ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠΌ.
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠ° ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ.
Π©Π΅Π»ΠΊΠ½ΠΈΡΠ΅ ΡΠ·Π΅Π» ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΏΡΠ°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡΡΠΈ ΠΈ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Β«Π‘ΠΎΠ·Π΄Π°ΡΡΒ» > Β«ΠΡΡΠ³ΠΈΠ΅Β».
ΠΡΠ±Π΅ΡΠΈΡΠ΅ Β«ΠΠ»Π°ΡΡ ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉΒ» Π² ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ Β«Π‘ΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡΒ». ΠΠ°ΠΆΠΌΠΈΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ Β«ΠΠ°Π»Π΅Π΅Β».
Π ΠΏΠΎΠ»Π΅ Β«ΠΠΌΡ ΠΊΠ»Π°ΡΡΠ°Β» Π²Π²Π΅Π΄ΠΈΡΠ΅ Message.
Π ΠΏΠΎΠ»Π΅ Β«ΠΠ°ΠΊΠ΅ΡΒ» Π²Π²Π΅Π΄ΠΈΡΠ΅ entities.
ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Β«Π‘ΠΎΠ·Π΄Π°ΡΡ Π±Π»ΠΎΠΊ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡΒ». ΠΠ°ΠΆΠΌΠΈΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ Β«ΠΠ°Π»Π΅Π΅Β».
ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ Π΄Π°Π½Π½ΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΠ±Π΅ΡΠΈΡΠ΅
jdbc/sample
, Π΅ΡΠ»ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ JavaDB).
ΠΡΡΠΎΡΠ½ΠΈΠΊ Π΄Π°Π½Π½ΡΡ
Π΄Π»Ρ jdbc/sample
Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠΎΡΡΠ°Π²Π΅ ΠΏΠ°ΠΊΠ΅ΡΠ° ΡΡΠ΅Π΄Ρ IDE ΠΏΡΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ ΡΡΠ΅Π΄Ρ IDE ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ GlassFish. ΠΠ΄Π½Π°ΠΊΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ Π΄ΡΡΠ³ΠΎΠΉ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ Π΄Π°Π½Π½ΡΡ
, Π΅ΡΠ»ΠΈ ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ.
ΠΠΎΠΆΠ½ΠΎ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ (ΠΈΠΌΡ Π±Π»ΠΎΠΊΠ° ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊ ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ EclipseLink). Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π΄Π»Ρ Π±Π»ΠΎΠΊΠ° ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ API ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ Java ΠΈ ΡΡΠΎ Π΄Π»Ρ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ°Π±Π»ΠΈΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Β«Π‘ΠΎΠ·Π΄Π°ΡΡΒ», Ρ. Π΅. ΡΠ°Π±Π»ΠΈΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠ»Π°ΡΡΠΎΠ² ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΠΏΡΠΈ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π ΠΌΠ°ΡΡΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π±Π»ΠΎΠΊΠ° ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π½Π°ΠΆΠΌΠΈΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ Β«ΠΠ°Π²Π΅ΡΡΠΈΡΡΒ».
ΠΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ Β«ΠΠ°Π²Π΅ΡΡΠΈΡΡΒ» Π² ΡΡΠ΅Π΄Π΅ IDE Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ ΠΊΠ»Π°ΡΡ ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠΊΡΠΎΠ΅ΡΡΡ Π² ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅. ΠΠ°ΠΊ Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· ΠΏΡΠΈΠΌΠ΅ΡΠ°, Π² ΡΡΠ΅Π΄Π΅ IDE Π±ΡΠ»ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΎ ΠΏΠΎΠ»Π΅ id private Long id;
, ΠΈ Π΄Π»Ρ ΠΏΠΎΠ»Ρ ΡΠΎΠ·Π΄Π°Π½Ρ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ @Id
ΠΈ @GeneratedValue(strategy = GenerationType.AUTO)
.
Π ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΠΏΠΎΠ»Π΅
message
(Π²ΡΠ΄Π΅Π»Π΅Π½ΠΎ ΠΏΠΎΠ»ΡΠΆΠΈΡΠ½ΡΠΌ ΡΡΠΈΡΡΠΎΠΌ) ΠΏΠΎΠ΄ ΠΏΠΎΠ»Π΅ΠΌid
.
private Long id; *private String message;*
Π©Π΅Π»ΠΊΠ½ΠΈΡΠ΅ ΠΏΡΠ°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡΡΠΈ Π² ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅ ΠΈ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Β«ΠΡΡΠ°Π²ΠΈΡΡ ΠΊΠΎΠ΄Β» (Alt-Insert; Ctrl-I Π΄Π»Ρ Mac), Π° Π·Π°ΡΠ΅ΠΌ Β«ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ°Β».
Π Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ Β«Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈΒ» Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΠΏΠΎΠ»Π΅
message
ΠΈ Π½Π°ΠΆΠΌΠΈΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ Β«Π‘ΠΎΠ·Π΄Π°ΡΡΒ».
Π ΡΡΠ΅Π΄Π΅ IDE Π±ΡΠ΄ΡΡ ΡΠΎΠ·Π΄Π°Π½Ρ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π΄Π»Ρ ΠΏΠΎΠ»Ρ message
.
Figure 3. ΠΠ°ΡΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π±Π»ΠΎΠΊΠΎΠ² ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ
Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ.
ΠΠ»Π°ΡΡ ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ
. ΠΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½Π° ΡΠ°Π±Π»ΠΈΡΠ° Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
Π΄Π»Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ. Π’Π°Π±Π»ΠΈΡΠ° Π±ΡΠ΄Π΅Ρ ΡΠΎΡΡΠΎΡΡΡ ΠΈΠ· ΡΡΠΎΠ»Π±ΡΠΎΠ²
id
ΠΈ message
.ΠΡΠ»ΠΈ ΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π±Π»ΠΎΠΊ ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π² ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅ XML, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ, ΡΡΠΎ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ API ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ Java (JTA) ( transaction-type="JTA"
). ΠΡΠΎ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΠΎ, ΡΡΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΆΠΈΠ·Π½Π΅Π½Π½ΡΠΌ ΡΠΈΠΊΠ»ΠΎΠΌ ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠΌ. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΌΠ΅Π½ΡΡΠ΅ ΡΡΡΠΎΠΊ ΠΊΠΎΠ΄Π°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΆΠΈΠ·Π½Π΅Π½Π½ΡΠΉ ΡΠΈΠΊΠ» ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠΌ, Π° Π½Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. ΠΠΎΠ΄ΡΠΎΠ±Π½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎΠ± ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ JTA Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΠΌΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ Java Transaction API.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°ΡΠ°Π΄Π° ΡΠ΅Π°Π½ΡΠ°
Π ΡΡΠΎΠΌ ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠΈ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΌΠ°ΡΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ°ΡΠ°Π΄Π° ΡΠ΅Π°Π½ΡΠ° Π±Π΅Π· ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π΄Π»Ρ ΡΡΡΠ½ΠΎΡΡΠΈ Message.
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ΅Π°Π½ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ°Π³ΠΈ.
Π©Π΅Π»ΠΊΠ½ΠΈΡΠ΅ ΡΠ·Π΅Π» ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΏΡΠ°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡΡΠΈ ΠΈ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Β«Π‘ΠΎΠ·Π΄Π°ΡΡΒ» > Β«ΠΡΡΠ³ΠΈΠ΅Β».
ΠΡΠ±Π΅ΡΠΈΡΠ΅ Β«Π‘Π΅Π°Π½ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π΄Π»Ρ ΡΡΡΠ½ΠΎΡΡΠ½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ²Β» ΠΈΠ· ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ Enterprise JavaBeans. ΠΠ°ΠΆΠΌΠΈΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ Β«ΠΠ°Π»Π΅Π΅Β».
ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΡΡΡΠ½ΠΎΡΡΡ
Message
ΠΈ Π½Π°ΠΆΠΌΠΈΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ Β«ΠΠΎΠ±Π°Π²ΠΈΡΡΒ». ΠΠ°ΠΆΠΌΠΈΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ Β«ΠΠ°Π»Π΅Π΅Β».Π ΠΏΠΎΠ»Π΅ Β«ΠΠ°ΠΊΠ΅ΡΒ» Π²Π²Π΅Π΄ΠΈΡΠ΅ boundary. ΠΠ°ΠΆΠΌΠΈΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ Β«ΠΠ°Π²Π΅ΡΡΠΈΡΡΒ».
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π±ΠΈΠ·Π½Π΅Ρ-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ ΡΠ΅Π°Π½ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π΄Π»Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Π² ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ Π±Π΅Π· ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°.
Figure 4. ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Bean ΡΠ΅Π°Π½ΡΠ° Π΄Π»Ρ ΠΌΠ°ΡΡΠ΅ΡΠ° ΠΊΠ»Π°ΡΡΠΎΠ² ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ
ΠΠΎΠ³Π΄Π° Π²Ρ Π½Π°ΠΆΠΌΠ΅ΡΠ΅ Β«ΠΠΎΡΠΎΠ²ΠΎΒ», ΡΡΠ΅Π΄Π° IDE ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΡΠ°Π΄Π½ΡΠΉ ΠΊΠ»Π°ΡΡ ΡΠ΅Π°Π½ΡΠ° MessageFacade.java
ΠΈ AbstractFacade.java
ΠΈ ΠΎΡΠΊΡΠΎΠ΅Ρ ΡΠ°ΠΉΠ»Ρ Π² ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅. ΠΠ°ΠΊ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ Π² ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅, Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ @Stateless
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡeΡΡΡ Π΄Π»Ρ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ MessageFacade.java
ΡΠ΅Π°Π½ΡΠ½ΡΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ Π±Π΅Π· ΡΠΎΡΡΠΎΡΠ½ΠΈΡ. MessageFacade.java
ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ AbstractFacade.java
, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΡ ΠΈ ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠ΅ΠΉ.
@Stateless public class MessageFacade extends AbstractFacade<Message> { @PersistenceContext(unitName = "SimpleEE6AppPU") private EntityManager em;
ΠΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΠ°ΡΠ°Π΄Π° Π΄Π»Ρ ΡΡΡΠ½ΠΎΡΡΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ°ΡΡΠ΅ΡΠ° Π² ΡΡΠ΅Π΄Π΅ IDE ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ
PersistenceContext
( @PersistenceContext(unitName = "SimpleEE6AppPU")
) Π΄Π»Ρ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ ΡΠ΅ΡΡΡΡΠ° Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠ° ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ Π² ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠ΅Π°Π½ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΠΈ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΈΠΌΠ΅Π½ΠΈ Π±Π»ΠΎΠΊΠ° ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ.
Π‘ΡΠ΅Π΄Π° IDE ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΌΠ΅ΡΠΎΠ΄Ρ Π² AbstractFacade.java
Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΈ Π½Π°Ρ
ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ. Π ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ API EntityManager ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΎΠΌ ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ. ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, ΡΡΠ΅Π΄Π° IDE Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π·Π°ΠΏΡΠΎΡΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ Π½Π°Ρ
ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ. Π ΠΌΠ΅ΡΠΎΠ΄Π°Ρ
findAll
, findRange
ΠΈ count
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ API Criteria Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ². API-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Criteria Π²Ρ
ΠΎΠ΄ΠΈΡ Π² ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ JPA 2.x, ΠΊΠΎΡΠΎΡΠ°Ρ Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Java EE 6.ΠΡ Ρ ΠΎΡΠΈΡΠ΅ Π²ΡΡΡΠΈΡΡ Java. ΠΠΎΡ ΠΊΠ°ΠΊ Π½Π°ΡΠ°ΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ. | ΠΠΆΠΎΠ½ Π‘Π΅Π»Π°Π²ΡΠΊΠΈ | Javarevisited
ΠΡ Ρ ΠΎΡΠΈΡΠ΅ Π²ΡΡΡΠΈΡΡ Java. ΠΠΎΡ ΠΊΠ°ΠΊ Π½Π°ΡΠ°ΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ.
Β·
Π§ΡΠ΅Π½ΠΈΠ΅: 6 ΠΌΠΈΠ½.Β·
20 ΠΈΡΠ»Ρ 2020 Π³. Photo by Glenn Carstens-Peters on UnsplashΠΡΠ΅ ΡΠ·ΡΠΊΠΈ β ΡΡΠΎ Β«ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡΒ» Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΌΠ½ΠΎΠ³ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π΅ΡΡΡ ΠΎΠ΄ΠΈΠ½, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΈΡΠ°ΡΡ Π»ΡΡΡΠΈΠΌ Π²ΡΠ±ΠΎΡΠΎΠΌ β Java (Ρ ΠΎΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ²Π΅ΡΠΆΠ΄Π°ΡΡ, ΡΡΠΎ ΡΡΠΎ Python).
ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° ΡΡΠΎΠΌ ΡΠ·ΡΠΊΠ΅ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π±Π΅Π·Π³ΡΠ°Π½ΠΈΡΠ½Ρ.
ΠΠ²ΡΠΎΡ: John Selawsky
3,4 ΡΡΡ. ΠΏΠΎΠ΄ΠΏΠΈΡΡΠΈΠΊΠΎΠ²
Β·ΠΠΈΡΠ°ΡΠ΅Π»Ρ Π΄Π»ΡΠ‘ΡΠ°ΡΡΠΈΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Java ΠΈ ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»Ρ Java Π½Π° ΠΊΡΡΡΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Learning Tree International. ΠΡ Π²Π΅ΡΠΈΠΌ Π² Java.
ΠΡΠ΅ ΠΎΡ ΠΠΆΠΎΠ½Π° Π‘Π΅Π»Π°Π²ΡΠΊΠΈ ΠΈ ΠΠΆΠ°Π²Π°ΠΏΠ΅ΡΠ΅ΡΠΌΠΎΡΡΠ΅Π½ΠΎ
ΠΠΆΠΎΠ½ Π‘Π΅Π»Π°Π²ΡΠΊΠΈ
Π²
20 ΠΏΠΎΡΡΡΡΠ°ΡΡΠΈΡ ΠΈΠ΄Π΅ΠΉ Π΄Π»Ρ Java-ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ²ΡΡΡΡ Π²Π°ΡΡ ΠΊΠ°ΡΡΠ΅ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°
ΠΡΠΎ ΠΊΡΠ°ΡΠΊΠΎΠ΅ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΄ΠΈΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ΄Π΅ΠΉ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Java, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ°Π½ΡΡ Π½Π°ΡΠ°Π»ΠΎΠΌ Π²Π°ΡΠ΅ΠΉ ΠΊΠ°ΡΡΠ΅ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°. Π£ΡΠΈΡΡΠ²Π°Ρ, ΡΡΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ Π΄Π΅ΡΡΡΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅β¦
11 ΠΌΠΈΠ½ΡΡ ΡΡΠ΅Π½ΠΈΡ Β· 3 ΠΎΠΊΡΡΠ±ΡΡ 2020 Π³.
in
10 ΡΡΠ½ΠΊΡΠΈΠΉ Spring Cloud, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΏΡΠΎΡΠ°ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΎΠ² Π² Java
ΠΠΎΡ 10 ΡΠ°ΠΌΡΠ΅ Π²Π°ΠΆΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Spring Cloud ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π½Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Java-ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΎΠ²
Β· ΡΡΠ΅Π½ΠΈΠ΅ Π·Π° 6 ΠΌΠΈΠ½ΡΡ Β· 27 ΠΈΡΠ½ΡΠΠΈΡΠΎΡ ΠΠ°ΡΠ½Π°ΡΠ°ΠΊΠ°ΠΏΡ
Π²
5 Π²Π°ΠΆΠ½ΡΡ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΎΠ²
Π¨Π°Π±Π»ΠΎΠ½Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΎΠ² ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ Π²ΡΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΌΠΈ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΈΡ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΏΠΎΠ²ΡΡΠ°ΡΡ Π³ΠΈΠ±ΠΊΠΎΡΡΡ, ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡΡ, ΠΎΡΠΊΠ°Π·ΠΎΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡβ¦
ΠΠΆΠΎΠ½ Π‘Π΅Π»Π°Π²ΡΠΊΠΈ
in
10 ΡΠΌΠ΅ΡΡΠ΅Π»ΡΠ½ΡΡ ΠΎΡΠΈΠ±ΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΠ·Π±Π΅Π³Π°ΡΡ ΠΏΡΠΈ ΠΈΠ·ΡΡΠ΅Π½ΠΈΠΈ Java
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ»ΠΈ Π½Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ? ΠΠΎΡ ΠΎΠΆΠ΅, Π²Ρ ΡΠ΄Π΅Π»Π°Π»ΠΈ ΡΠ²ΠΎΠΉ Π²ΡΠ±ΠΎΡ Π² ΠΏΠΎΠ»ΡΠ·Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠ°. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ β ΠΎΡΠ»ΠΈΡΠ½ΠΎΠ΅ ΠΏΠΎΠ»Π΅ Π΄Π»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ β¦
Π§ΡΠ΅Π½ΠΈΠ΅: 8 ΠΌΠΈΠ½Β·17 Π°ΠΏΡΠ΅Π»Ρ 2019 Π³.
ΠΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π²ΡΠ΅ ΠΎΡ John Selawsky
Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½ΠΎ Medium
Julie Perilla Garcia
in
Π‘ΡΠ°ΡΡ Π²Π΅Π»ΠΈΠΊΠΈΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡβββ ΠΠ°ΠΌ Π½ΡΠΆΠ½Π° ΡΠΈΡΡΠ΅ΠΌΠ°
ΠΠΎΡ ΠΊΠ°ΠΊ ΠΏΠΎΡΡΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΠ½.

Julie Perilla Garcia
in
ΠΠ·Π±Π΅Π³Π°ΠΉΡΠ΅ ΡΡΠΈΡ 5 Π»ΠΎΠ²ΡΡΠ΅ΠΊ Π½Π° ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΠΌΠ΅ΡΡΠ΅, ΡΡΠΎΠ±Ρ Π΄ΠΎΠ±ΠΈΡΡΡΡ ΡΡΠΏΠ΅Ρ Π° Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠ°-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°
ΠΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡΠ΅ ΡΠ²ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π΄Π΅Π»Π°ΡΡ ΡΠ΅Π°Π»ΡΠ½ΡΡ ΡΠ°Π±ΠΎΡΡ.
Β·7 ΠΌΠΈΠ½ΡΡ ΡΡΠ΅Π½ΠΈΡΒ·5 Π΄Π½Π΅ΠΉ Π½Π°Π·Π°Π΄Π‘ΠΏΠΈΡΠΊΠΈ
ΠΠ±ΡΠ΅Π΅ Π·Π½Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ
20 ΠΈΡΡΠΎΡΠΈΠΉΒ·45 ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠΉ
ΠΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΏΠΎΠ·Π΄Π½ΠΎ ΠΈ Π½Π΅ ΡΠ°Π½ΠΎ Π½Π°ΡΠΈΠ½Π°ΡΡ ΡΡΠΎ-ΡΠΎ
10 ΠΈΡΡΠΎΡΠΈΠΉΒ·17 ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠΉ 9 0003
ΠΡΡΠΎΡΠΈΠΈ Π² ΠΏΠΎΠΌΠΎΡΡ Π Π°Π·Π²ΠΈΠ²Π°ΠΉΡΠ΅ΡΡ ΠΊΠ°ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ
19 ΠΈΡΡΠΎΡΠΈΠΉΒ·158 ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠΉ
ΠΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°
11 ΠΈΡΡΠΎΡΠΈΠΉΒ·28 ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠΉ
ΠΠΆΠ΅ΠΉΠΊΠΎΠ± ΠΠ΅Π½Π½Π΅ΡΡ
Π²
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Git ΠΊΠ°ΠΊ ΡΡΠ°ΡΡΠΈΠΉ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ 90 018
Git β ΡΡΠΎ ΠΌΠΎΡΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, Π΅ΡΠ»ΠΈ Π²Ρ Π·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ. 15 Π½ΠΎΡΠ±ΡΡ 2022 Π³. , ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠ±Π΅ΡΠΊΡΡΠ°ΠΆΠΈΠ²Π°ΡΡΠ΅ΠΉ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΉ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΡΡβ¦
Β·9 ΠΌΠΈΠ½ ΡΡΠ΅Π½ΠΈΡΒ·20 Π°ΠΏΡΠ΅Π»ΡThe PyCoach
in
ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ChatGPT Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ! ΠΠΎΡ ΠΊΠ°ΠΊ Π±ΡΡΡ Π²ΠΏΠ΅ΡΠ΅Π΄ΠΈ 99% ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ChatGPT
ΠΡΠ²ΠΎΠΉΡΠ΅ ChatGPT, ΠΈΠ·ΡΡΠΈΠ² ΡΠ΅Ρ Π½ΠΈΠΊΡ Π±ΡΡΡΡΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ°.

ΠΠ½ΡΠΎΠ½ΠΈ Π. ΠΡΠΉΡ
ΠΠ°ΠΊ ΡΠ΅ΡΠ°ΡΡ Π·Π°Π΄Π°ΡΠΈ LeetCode (ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ ΠΏΡΡΡ)
tl;dr: ΠΡ Π΄Π΅Π»Π°Π΅ΡΠ΅ ΡΡΠΎ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Β«Π¨Π΅ΡΡΡ ΡΠ°Π³ΠΎΠ²Β» ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΡΡΠ΅Π½ΠΈΡΡΠ΅ΡΠ΅ΡΡ Ρ Π²ΠΎΠΏΡΠΎΡΠ°ΠΌΠΈ LeetCode, ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ Ρ Π΄ΡΡΠ³ΠΈΠΌ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ. Π₯ΡΠ°Π½ΠΈΡΠ΅β¦
Β·13 ΠΌΠΈΠ½ ΡΡΠ΅Π½ΠΈΡΒ·10 ΠΌΠ°Ρ 2022 Π³.Π‘ΠΌ. Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ
Π‘ΡΠ°ΡΡΡ
ΠΠ°ΡΡΠ΅ΡΠ°
ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ° Π² ΡΠ΅ΡΡ
ΠΠ»Π°Π³ΠΈΠ½ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΠΠ»Π°Π³ΠΈΠ½ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΎΠ±Π»Π΅Π³ΡΠ°Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ JVM. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π»Π΅Π³ΠΊΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ ΡΠΏΠ°ΠΊΠΎΠ²ΡΠ²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² Π²ΠΈΠ΄Π΅ TAR ΠΈ/ΠΈΠ»ΠΈ ZIP, Π²ΠΊΠ»ΡΡΠ°Ρ ΡΡΠ΅Π½Π°ΡΠΈΠΈ Π·Π°ΠΏΡΡΠΊΠ° Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ.
ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ΡΠ²Π½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ Java. ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΉ Π½Π°Π±ΠΎΡ
ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ Β«ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌΒ».
ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ΡΠ²Π½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΡ. Π
ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²
, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΏΠ°ΠΊΠΎΠ²ΡΠ²Π°Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π²ΠΊΠ»ΡΡΠ°Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΊΠΎΠ΄Π° ΠΈ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΈ Π·Π°ΠΏΡΡΠΊΠ°.
Π§ΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π²ΠΊΠ»ΡΡΠΈΡΠ΅ Π² ΡΡΠ΅Π½Π°ΡΠΈΠΉ ΡΠ±ΠΎΡΠΊΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
ΠΡΠΈΠΌΠ΅Ρ 1. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
build.gradle.kts
plugins { ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ }
build.gradle
ΠΏΠ»Π°Π³ΠΈΠ½Ρ { ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Β«ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΒ» }
ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠ΅ΠΉ ΠΏΠ»Π°Π³ΠΈΠ½Π° ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° (Ρ.Π΅. ΡΠΎΡΠΊΠΈ Π²Ρ ΠΎΠ΄Π°) ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΡΠΈΠΌΠ΅Ρ 2. ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
build.gradle.kts
application { mainClass.set("org.gradle.sample.Main") }
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ build.gradle
{ mainClass = 'org.gradle.sample.Main' }
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² Π·Π°Π΄Π°ΡΡ run
(ΡΠΈΠΏ: JavaExec). ΠΡΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅Ρ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΉ Π½Π°Π±ΠΎΡ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡ Π½ΠΎΠ²ΡΡ JVM Ρ Π΅Π΅ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ (Π²ΠΌΠ΅ΡΡΠ΅ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΠΌΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ) Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΡΠΈ ΠΊ ΠΊΠ»Π°ΡΡΠ°ΠΌ ΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΎΡΠ»Π°Π΄ΠΊΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ
gradle run --debug-jvm
(ΡΠΌ. JavaExec.setDebug (Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅)).
ΠΠ°ΡΠΈΠ½Π°Ρ Ρ Gradle 4.9, Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ --args
. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ foo --bar
, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ gradle run --args="foo --bar"
(ΡΠΌ. JavaExec.setArgsString(java.lang.String)
ΠΡΠ»ΠΈ Π²Π°ΡΠ΅ΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ Π½Π°Π±ΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² JVM ΠΈΠ»ΠΈ ΡΠ²ΠΎΠΉΡΡΠ² ΡΠΈΡΡΠ΅ΠΌΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΡΡΡΠΎΠΈΡΡ applicationDefaultJvmArgs
ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ. ΠΡΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ JVM ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΠΊ Π·Π°Π΄Π°ΡΠ΅ run
, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΡΠΈΡΡΠ²Π°ΡΡΡΡ Π² ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΡΡΠ΅Π½Π°ΡΠΈΡΡ
Π·Π°ΠΏΡΡΠΊΠ° Π²Π°ΡΠ΅Π³ΠΎ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π°.
ΠΡΠΈΠΌΠ΅Ρ 3. ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² JVM ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ
build.gradle.kts
application { applicationDefaultJvmArgs = listOf("-Dgreeting.language=en") }
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ build.gradle
{ applicationDefaultJvmArgs = ['-Dgreeting.language=en'] }
ΠΡΠ»ΠΈ ΡΡΠ΅Π½Π°ΡΠΈΠΈ Π·Π°ΠΏΡΡΠΊΠ° Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π² Π΄ΡΡΠ³ΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅, ΡΠ΅ΠΌ
0201 bin ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ executableDir
.
ΠΡΠΈΠΌΠ΅Ρ 4. ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π²
build.gradle.kts
application { ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ_ΠΊΠ°ΡΠ°Π»ΠΎΠ³ = "custom_bin_dir" }
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ build.gradle
{ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ_ΠΊΠ°ΡΠ°Π»ΠΎΠ³ = 'custom_bin_dir' }
Gradle ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Java, ΠΊΠ°ΠΊ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Java. ΠΠΎΠ΄ΡΠ»ΠΈ Java ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ, ΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΈ ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π΄Π²Π΅ Π²Π΅ΡΠΈ Π² Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ Π²Ρ Π΄Π΅Π»Π°Π΅ΡΠ΅ Π΄Π»Ρ Π½Π΅ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ
, Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ°ΠΉΠ» module-info.java
Π΄Π»Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ΡΡ ΠΊ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΠ»Π°Π³ΠΈΠ½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Java Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΏΠΎ ΡΡΠΎΠΉ ΡΠ΅ΠΌΠ΅.
ΠΠΎ-Π²ΡΠΎΡΡΡ , Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠΎΠ±ΡΠΈΡΡ Gradle ΠΈΠΌΡ ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ, Π² Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ ΠΈΠΌΠ΅Π½ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΡΠΈΠΌΠ΅Ρ 5. ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ mainModule.set(Β«org.gradle.sample.appΒ») // ΠΈΠΌΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ Π² module-info.java mainClass.set(Β«org.gradle.sample.MainΒ») }
build.gradle
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ { mainModule = 'org.gradle.sample.app' // ΠΈΠΌΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ Π² module-info.java mainClass = 'org.gradle.sample.Main' }
ΠΠΎΡ ΠΈ Π²ΡΠ΅.
ΠΡΠ»ΠΈ Π²Ρ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΡΠ²ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² Π·Π°Π΄Π°ΡΡ run
ΠΈΠ»ΠΈ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ Π·Π°ΠΏΡΡΠΊΠ°, ΠΎΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠ°ΠΊ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈ ΡΡΠΈΡΡΠ²Π°ΡΡ Π³ΡΠ°Π½ΠΈΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΡΠΈ ΡΠ±ΠΎΠΉ ΡΠ΅ΡΠ»Π΅ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΌΡ ΠΏΠ°ΠΊΠ΅ΡΡ ΠΈΠ· Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ.
Π‘ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΊΠ»Π°ΡΡ ΡΠ°ΠΊΠΆΠ΅ Π²ΡΡΡΠΎΠ΅Π½ Π² module-info.class
ΡΠ°ΠΉΠ» Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Jar.
ΠΡΠ»ΠΈ Π²Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π°ΠΏΡΡΠΌΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ java
, ΡΠΎΠ³Π΄Π° Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΈΠΌΡ ΠΌΠΎΠ΄ΡΠ»Ρ.
ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π³ΠΎΡΠΎΠ²ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΊΠ»ΡΡΠ°ΡΡΠΈΠΉ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ ΡΠ°ΡΡΡ ΠΌΡΠ»ΡΡΠΈΠΏΡΠΎΠ΅ΠΊΡΠ°.
ΠΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠ»Π°Π³ΠΈΠ½Π° Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π° (ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ). ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ² ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΡΠΌ:
ΠΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ | Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ |
---|---|
(ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³) | |
| ΠΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΡΡΠ΅Π΄Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡΠ°. |
| Π‘ΡΠ΅Π½Π°ΡΠΈΠΈ Π·Π°ΠΏΡΡΠΊΠ° (ΡΠΎΠ·Π΄Π°Π½Ρ |
Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π² Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π²
src/dist
. ΠΠΎΠ»Π΅Π΅ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ, Π½Π°ΡΡΡΠΎΠΈΠ² CopySpec, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΉ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²ΠΎΠΌ.
ΠΡΠΈΠΌΠ΅Ρ 6. ΠΠΊΠ»ΡΡΠΈΡΡ Π²ΡΡ
ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π΄ΡΡΠ³ΠΈΡ
Π·Π°Π΄Π°Ρ Π² Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
build.gradle.kts
val createDocs by tasks.registering {
val docs = layout.buildDirectory.dir("Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ")
outputs.dir(Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ)
ΡΠ΄Π΅Π»Π°ΡΡΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ {
docs.get().asFile.mkdirs()
docs.get().file("readme.txt").asFile.writeText("ΠΡΠΎΡΠΈΡΠ°ΠΉΡΠ΅ ΠΌΠ΅Π½Ρ!")
}
}
Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Ρ {
ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ {
ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ {
ΠΈΠ· (ΡΠΎΠ·Π΄Π°ΡΡΠΠΎΠΊΡΠΌΠ΅Π½ΡΡ) {
Π²("Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ")
}
}
}
}
build.gradle
tasks.register('createDocs') {
def docs = layout.buildDirectory.dir('docs')
outputs.dir Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ
ΡΠ΄Π΅Π»Π°ΡΡΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ {
docs.get().asFile.mkdirs()
docs.get().file('readme.txt').asFile.write('ΠΡΠΎΡΠΈΡΠ°ΠΉΡΠ΅ ΠΌΠ΅Π½Ρ!')
}
}
Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Ρ {
ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ {
ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ {
ΠΈΠ· (ΡΠΎΠ·Π΄Π°ΡΡΠΠΎΠΊΡΠΌΠ΅Π½ΡΡ) {
Π² "Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ"
}
}
}
}
Π£ΠΊΠ°Π·Π°Π², ΡΡΠΎ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ² Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π²ΡΡ
ΠΎΠ΄Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π·Π°Π΄Π°ΡΠΈ (ΡΠΌ.
Π΄ΠΎΠ±Π°Π²ΠΎΡΠ½ΡΠ΅ ΡΠ±ΠΎΡΠΊΠΈ), Gradle Π·Π½Π°Π΅Ρ, ΡΡΠΎ Π·Π°Π΄Π°ΡΠ°, ΡΠΎΠ·Π΄Π°ΡΡΠ°Ρ ΡΠ°ΠΉΠ»Ρ, Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π·Π°ΠΏΡΡΠ΅Π½Π° Π΄ΠΎ ΡΠ±ΠΎΡΠΊΠΈ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π°, ΠΈ ΠΏΠΎΠ·Π°Π±ΠΎΡΠΈΡΡΡ ΠΎΠ± ΡΡΠΎΠΌ Π·Π° Π²Π°Ρ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ
gradle installDist
Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±ΡΠ°Π·Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² build/install/ projectName
. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ gradle distZip
Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ZIP-Π°ΡΡ
ΠΈΠ²Π°, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π³ΠΎ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ², gradle distTar
Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ TAR ΠΈΠ»ΠΈ gradle assemble
Π΄Π»Ρ ΡΠ±ΠΎΡΠΊΠΈ ΠΎΠ±ΠΎΠΈΡ
.
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² Π·Π°ΠΏΡΡΠΊΠ°
ΠΠ»Π°Π³ΠΈΠ½ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠ΅Π½Π°ΡΠΈΠΈ Π·Π°ΠΏΡΡΠΊΠ° Unix (ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΈΡ Π΄Π»Ρ Linux, macOS ΠΈ Ρ. Π΄.) ΠΈ Windows ΠΈΠ· ΠΊΠΎΡΠΎΠ±ΠΊΠΈ.
Π‘ΡΠ΅Π½Π°ΡΠΈΠΈ Π·Π°ΠΏΡΡΠΊΠ° Π·Π°ΠΏΡΡΠΊΠ°ΡΡ JVM Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌΠΈ ΠΊΠ°ΠΊ ΡΠ°ΡΡΡ ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠ΅Π΄Ρ ΡΠ±ΠΎΡΠΊΠΈ ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,
JAVA_OPTS
env var).
Π¨Π°Π±Π»ΠΎΠ½Ρ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΎΡΠ½ΠΎΠ²Π°Π½Ρ Π½Π° ΡΠ΅Ρ
ΠΆΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΡΡ
, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΡΠ°ΠΌΠΎΠ³ΠΎ Gradle ΠΈ ΠΏΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ ΠΊΠ°ΠΊ ΡΠ°ΡΡΡ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π° Gradle.
Π‘ΡΠ΅Π½Π°ΡΠΈΠΈ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΠ΅.
ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ΡΡ ΠΊ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ CreateStartScripts Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ.
ΠΠ»Π°Π³ΠΈΠ½ Application Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π² ΠΏΡΠΎΠ΅ΠΊΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ.
Π·Π°ΠΏΡΡΡΠΈΡΡ
β JavaExecΠΠ°Π²ΠΈΡΠΈΡ ΠΎΡ :
ΠΊΠ»Π°ΡΡΡ
ΠΠ°ΠΏΡΡΠΊΠ°Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
startScripts
β CreateStartScriptsΠΠ°Π²ΠΈΡΠΈΡ ΠΎΡ :
Π±Π°Π½ΠΊΠ°
Π‘ΠΎΠ·Π΄Π°Π΅Ρ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΠ΅ Π΄Π»Ρ ΠΠ‘ ΡΡΠ΅Π½Π°ΡΠΈΠΈ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΊΠ°ΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ JVM.
installDist
β Π‘ΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡΠΠ°Π²ΠΈΡΠΈΡ ΠΎΡ :
jar
,startScripts
Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³.
distZip
β ΠΠΎΡΡΠΎΠ²ΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡΠΠ°Π²ΠΈΡΠΈΡ ΠΎΡ :
jar
,startScripts
Π‘ΠΎΠ·Π΄Π°Π΅Ρ ZIP-Π°ΡΡ ΠΈΠ² Ρ ΠΏΠΎΠ»Π½ΡΠΌ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²ΠΎΠΌ, Π²ΠΊΠ»ΡΡΠ°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ ΡΡΠ΅Π½Π°ΡΠΈΠΈ Π΄Π»Ρ ΠΠ‘.
distTar
β TarΠΠ°Π²ΠΈΡΠΈΡ ΠΎΡ :
jar
,startScripts
Π‘ΠΎΠ·Π΄Π°Π΅Ρ Π°ΡΡ ΠΈΠ² TAR Ρ ΠΏΠΎΠ»Π½ΡΠΌ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²ΠΎΠΌ, Π²ΠΊΠ»ΡΡΠ°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ ΡΡΠ΅Π½Π°ΡΠΈΠΈ Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΠ‘.
ΠΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π² ΠΏΡΠΎΠ΅ΠΊΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π΅Π³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ. Π‘ΠΌ. Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ JavaApplication DSL Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π°Ρ
, Π΄ΠΎΡΡΡΠΏΠ½ΡΡ
Π² ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΈ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΡΡΡΠΎΠΈΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π±Π»ΠΎΠΊΠ°
application {}
, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ°Π½Π΅Π΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π² ΡΠ²ΠΎΠ΅ΠΌ ΡΡΠ΅Π½Π°ΡΠΈΠΈ ΡΠ±ΠΎΡΠΊΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
build.gradle.kts
application {
ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ_ΠΊΠ°ΡΠ°Π»ΠΎΠ³ = "custom_bin_dir"
}
build.gradle
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ {
ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ_ΠΊΠ°ΡΠ°Π»ΠΎΠ³ = 'custom_bin_dir'
}
Π‘ΡΠ΅Π½Π°ΡΠΈΠΈ Π·Π°ΠΏΡΡΠΊΠ° Gradle, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π²Π°ΡΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Π»ΠΈΡΠ΅Π½Π·ΠΈΡΡΡΡΡΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ Apache 2.