Μυρμήγκι εναντίον Maven vs Gradle

Ant Vs Maven Vs Gradle



Κατά τη διάρκεια της ανάπτυξης λογισμικού, οι προγραμματιστές πρέπει να ξαναφτιάξουν τον ίδιο κώδικα ξανά και ξανά. Συχνά προσπαθούν να χρησιμοποιήσουν σενάρια bash ή άλλες γλώσσες δέσμης ενεργειών για να αυτοματοποιήσουν την εργασία. Ωστόσο, υπάρχουν διαθέσιμα εργαλεία κατασκευής που είναι πιο κατάλληλα για αυτοματοποίηση κατασκευών. Τα κυρίαρχα εργαλεία κατασκευής είναι:

Ας ερευνήσουμε τα εργαλεία για να μάθουμε περισσότερα.







Apache Ant με Ivy

Το Apache Ant είναι ένα εργαλείο γραμμής εντολών που βασίζεται σε Java και χρησιμοποιεί αρχεία XML για τον καθορισμό σεναρίων δημιουργίας. Χρησιμοποιείται κυρίως για κτίρια Java, αλλά μπορεί επίσης να χρησιμοποιηθεί για ανάπτυξη C/C ++. Οι ενσωματωμένες εργασίες παρέχουν τρόπους για τη σύνταξη, συναρμολόγηση, δοκιμή και εκτέλεση εφαρμογών λογισμικού. Οι χρήστες μπορούν επίσης να δημιουργήσουν τα δικά τους antlibs για να βελτιώσουν τη λειτουργικότητα του Ant. Το Apache Ivy είναι ένα εργαλείο διαχείρισης εξάρτησης που ενσωματώνεται εύκολα με το Ant για να παρέχει ένα πιο ισχυρό οικοσύστημα. Η ανάπτυξη του Ant ξεκίνησε το 2000.



Πλεονεκτήματα



  • Καλύτερος έλεγχος της συνολικής διαδικασίας κατασκευής
  • Αρκετά ευέλικτο για να συνεργαστεί με οποιαδήποτε διαδικασία εργασίας

Μειονεκτήματα





  • Τα αρχεία δημιουργίας που βασίζονται σε XML μπορούν να γίνουν μεγάλα και μη διατηρήσιμα
  • Απαιτείται πολύς χρόνος και πόροι για τη διατήρηση των σεναρίων δημιουργίας
  • Η ενσωμάτωση του IDE είναι δύσκολο να επιτευχθεί

Μυρμήγκι με παράδειγμα Ivy

Μπορείτε να εγκαταστήσετε το πιο πρόσφατο Ant από εδώ Το Πρέπει να κατεβάσετε το zip, να επεκτείνετε και να βάλετε το φάκελο bin στη διαδρομή σας. Μπορείτε να χρησιμοποιήσετε την ακόλουθη εντολή για να δείτε εάν το Ant έχει εγκατασταθεί σωστά:

$ μυρμήγκι-εκδοχή
Apache Ant(ΤΜ)έκδοση 1.10.1 που συντάχθηκε τον Φεβρουάριο2 2017

Μόλις εγκαταστήσετε το Ant, μπορείτε να κατεβάσετε το πιο πρόσφατο Ivy jar και να το βάλετε στο φάκελο lib μέσα στον κατάλογο Ant.



Αφού εγκαταστήσετε το Ant, δημιουργήστε φακέλους helloworld και helloworld/src. Μέσα στο φάκελο src, βάλτε το αρχείο helloworld.java με τον κωδικό:

/ *************************

Εκτυπώνει 'Hello World!'

**************************

δημόσιο τάξηΓειά σου Κόσμε{

δημόσιο στατικός κενόςκύριος( Σειρά []αψίδες) {
Σύστημα ΤοέξωΤοεκτύπωση('Γειά σου Κόσμε!')?
}

}

Τώρα στο φάκελο helloworld δημιουργήστε ένα αρχείο build.xml με τον ακόλουθο κώδικα:

xmlns: κισσός='antlib: org.apache.ivy.ant' όνομα='Γειά σου Κόσμε' Προκαθορισμένο='δοχείο'>>

όνομα='src.dir' αξία='src'/>
όνομα='build.dir' αξία='χτίζω'/>
όνομα='class.dir' αξία='$ {build.dir}/τάξεις'/>
όνομα='am.dir' αξία='$ {build.dir} / bin'/>
όνομα='lib.dir' αξία='lib' />
ταυτότητα='lib.path.id'>>
σε εσένα='$ {lib.dir}' />
>>

όνομα='αποφασίζω'>>
/>
>>

όνομα='ΚΑΘΑΡΗ'>>
σε εσένα='$ {build.dir}'/>
>>

όνομα='συντάσσω' Εξαρτάται='αποφασίζω'>>
σε εσένα='$ {class.dir}'/>
srcdir='$ {src.dir}' destdir='$ {class.dir}' classpathref='lib.path.id'/>
>>

όνομα='δοχείο' Εξαρτάται='συντάσσω'>>
σε εσένα='$ {bin.dir}'/>
destfile='$ {bin.dir}/$ {ant.project.name} .jar' basedir='$ {class.dir}'/>
>>

>>

Και στον ίδιο φάκελο helloworld, δημιουργήστε το αρχείο ivy.xml με τον ακόλουθο κώδικα:

εκδοχή='2.0'>>
οργάνωση='org.apache' μονάδα μέτρησης='Γειά σου Κόσμε'/>
>>
org='junit' όνομα='junit' στροφή μηχανής='4.12'/>
>>
>>

Η δομή του καταλόγου πρέπει να μοιάζει με αυτό:

Γειά σου Κόσμε
|- build.xml
|-- ivy.xml
`- src
`- helloworld.java

Τώρα μπορείτε να εκτελέσετε το build με την εντολή:

$μυρμήγκιδοχείο

Μια επιτυχημένη κατασκευή θα πρέπει να παρέχει έξοδο όπως αυτό:

βάζο μυρμηγκιών $
Buildfile: /Users/zak/_work/LearnBuildScripts/LearnANT/helloworld/build.xml

αποφασίζω:
[ivy: retrieve] :: Apache Ivy 2.4.0 - 20141213170938 :: http://ant.apache.org/ivy/ ::
[ivy: retrieve] :: ρυθμίσεις φόρτωσης :: url = jar: file:/Users/zak/BuildTools/ANT/apache
-ant-1.10.1/lib/ivy-2.4.0.jar! /org/apache/ivy/core/settings/ivysettings.xml
[ivy: retrieve] :: επίλυση εξαρτήσεων :: org.apache#helloworld; [προστασία ηλεκτρονικού ταχυδρομείου]
MacBook-Air.local
[ivy: retrieve] confs: [προεπιλογή]
[κισσός: ανάκτηση] βρέθηκε junit#junit; 4.12 δημόσια
[κισσός: ανάκτηση] βρέθηκε org.hamcrest#hamcrest-core; 1.3 δημόσια
[κισσός: ανάκτηση] :: αναφορά ανάλυσης :: επίλυση 397ms :: τεχνουργήματα dl 15ms
------------------------------------------------------ -------------------
| | ενότητες || τεχνουργήματα |
| conf | αριθμός | αναζήτηση | dwnlded | έξωση || αριθμός | dwnlded |
------------------------------------------------------ -------------------
| προεπιλογή | 2 | 0 | 0 | 0 || 4 | 0 |
------------------------------------------------------ -------------------
[κισσός: ανάκτηση] :: ανάκτηση :: org.apache#helloworld
[ivy: retrieve] confs: [προεπιλογή]
[κισσός: ανάκτηση] 0 αντικείμενα έχουν αντιγραφεί, 4 έχουν ήδη ανακτηθεί (0kB/39ms)

συντάσσω:
[mkdir] Δημιουργήθηκε σκηνοθεσία:/Users/zak/_work/LearnBuildScripts/LearnANT/helloworld/build/
τάξεις
[javac] /Users/zak/_work/LearnBuildScripts/LearnANT/helloworld/build.xml:22: προειδοποίηση:
Το 'includeantruntime' δεν ορίστηκε, προεπιλεγμένο το build.sysclasspath = last; ορίστηκε σε ψευδές
για επαναλαμβανόμενες κατασκευές
[javac] Μεταγλώττιση 1 αρχείου προέλευσης σε/Χρήστες/zak/_work/LearnBuildScripts/LearnANT/
helloworld/build/class

δοχείο:
[mkdir] Δημιουργήθηκε σκηνοθεσία:/Users/zak/_work/LearnBuildScripts/LearnANT/helloworld/build/bin
[jar] Building jar:/Users/zak/_work/LearnBuildScripts/LearnANT/helloworld/build/bin/
helloworld.jar

ΚΑΤΑΣΚΕΥΑΣΤΕ ΕΠΙΤΥΧΙΑ
Συνολικός χρόνος: 6 δευτερόλεπτα

Μπορείτε να δοκιμάσετε το αρχείο jar ως εξής:

$ java -cp build/bin/helloworld.δοχείοΓειά σου Κόσμε
Γειά σου Κόσμε!

Έχουμε ορίσει το αρχείο jar που πρέπει να τοποθετηθεί στο φάκελο build/bin. Οι φάκελοι δημιουργούνται κατά τη διάρκεια της κατασκευής. Η εντολή ant jar καλεί τον στόχο jar στο build.xml.

Μάβεν

Το Maven αναπτύχθηκε για να επιλύσει τα προβλήματα που αντιμετωπίζει το σενάριο που βασίζεται σε μυρμήγκια. Διατηρούσε τα αρχεία XML αλλά είχε διαφορετική προσέγγιση στην οργάνωση. Στο Ant, οι προγραμματιστές πρέπει να δημιουργήσουν όλες τις εργασίες. Ο Maven μειώνει τη δημιουργία εργασιών εφαρμόζοντας ισχυρότερα πρότυπα για την οργάνωση κώδικα. Ως αποτέλεσμα, είναι πιο εύκολο να ξεκινήσετε με τυπικά έργα.

Εισήγαγε επίσης λήψεις εξάρτησης που διευκόλυναν την ανάπτυξη. Πριν από την εισαγωγή του Ivy στο Ant, οι χρήστες έπρεπε να διαχειρίζονται τις εξαρτήσεις τοπικά. Ο Μάβεν υιοθέτησε πρώτα τη φιλοσοφία διαχείρισης της εξάρτησης.

Ωστόσο, τα αυστηρά πρότυπα του Mavens καθιστούν δύσκολη τη συγγραφή προσαρμοσμένων σεναρίων δημιουργίας. Το εργαλείο είναι εύκολο να εργαστεί με την προϋπόθεση ότι το έργο ακολουθεί τα αυστηρά πρότυπα.

Πλεονεκτήματα

  • Αυτόματες λήψεις εξάρτησης
  • Όλες οι εξαρτήσεις καταγράφονται αυτόματα στον έλεγχο πηγής ως μέρος των σεναρίων Maven
  • Τυποποιεί και απλοποιεί τη διαδικασία κατασκευής
  • Ενσωματώνεται εύκολα με IDE και συστήματα CI/CD

Μειονεκτήματα

  • Δεν είναι ευέλικτο στη δημιουργία προσαρμοσμένων ροών εργασίας
  • Απότομη καμπύλη μάθησης και η διαδικασία είναι δύσκολο να κατανοηθεί για αρχάριους
  • Χρονοβόρα για την επίλυση προβλημάτων κατασκευής και νέων ενοποιήσεων βιβλιοθηκών
  • Δεν είναι καλό με πολλές εκδόσεις της ίδιας εξάρτησης

Παράδειγμα Maven

Μπορείτε να κατεβάσετε το τελευταίο Maven από εδώ Το Μπορείτε να ελέγξετε την εγκατάσταση ως εξής:

$ mvn -μετατροπή
Apache Maven 3.5.2(138edd61fd100ec658bfa2d307c43b76940a5d7d? 2017-10-18T00:58:13-07: 00)
Maven home: /Users/zak/BuildTools/Maven/apache-maven-3.5.2
Έκδοση Java: 1.8.0_74, προμηθευτής: Oracle Corporation
Αρχική σελίδα Java: /Library/Java/JavaVirtualMachines/jdk1.8.0_74.jdk/Περιεχόμενα/Αρχική σελίδα/jre
Προεπιλεγμένη τοπική ρύθμιση: en_US, κωδικοποίηση πλατφόρμας: UTF-8
Όνομα λειτουργικού συστήματος:'mac os x', εκδοχή:'10 .11.6 ', αψίδα:'x86_64', οικογένεια:'Μακ'

Δημιουργήστε έναν φάκελο helloworld και δημιουργήστε ένα έργο με την ακόλουθη εντολή:

$ mvn archetype: generate -DgroupId = com.Όνομα εταιρείαςΤοΓειά σου Κόσμε-DartifactId = helloworld
-DarchetypeArtifactId = maven-archetype-quickstart -DinteractiveMode =ψευδής

Θα πρέπει να δημιουργήσει τη δομή του φακέλου και να δημιουργήσει την έξοδο που μοιάζει με αυτήν:

[INFO] Σάρωση για έργα ...
[ΠΛΗΡΟΦΟΡΙΕΣ]
[ΠΛΗΡΟΦΟΡΙΕΣ] -------------------------------------------------- -------------------------
[INFO] Building Maven Stub Project (No POM) 1
[ΠΛΗΡΟΦΟΡΙΕΣ] -------------------------------------------------- -------------------------
[ΠΛΗΡΟΦΟΡΙΕΣ]
[INFO] >>> maven-archetype-plugin: 3.0.0: δημιουργία (προεπιλογή-cli)> δημιουργία πηγών
@ standalone-pom >>>
[ΠΛΗΡΟΦΟΡΙΕΣ]
[ΠΛΗΡΟΦΟΡΙΕΣ]<<< maven-archetype-plugin:3.0.0:generate (default-cli) < generate-sources
@ standalone-pom<<<
[ΠΛΗΡΟΦΟΡΙΕΣ]
[ΠΛΗΡΟΦΟΡΙΕΣ]
[INFO] --- maven-archetype-plugin: 3.0.0: generate (default-cli) @ standalone-pom ---
[INFO] Δημιουργία έργου σε λειτουργία παρτίδας
[ΠΛΗΡΟΦΟΡΙΕΣ] -------------------------------------------------- -----------------------------
[ΠΛΗΡΟΦΟΡΙΕΣ] Χρησιμοποιώντας τις ακόλουθες παραμέτρους για τη δημιουργία έργου από το παλαιό (1.x) αρχέτυπο:
maven-archetype-quickstart: 1.0
[ΠΛΗΡΟΦΟΡΙΕΣ] -------------------------------------------------- -----------------------------
[INFO] Παράμετρος: basedir, Value:/Users/zak/_work/LearnBuildScripts/LearnMaven
[INFO] Παράμετρος: πακέτο, Αξία: com.companyname.helloworld
[ΠΛΗΡΟΦΟΡΙΕΣ] Παράμετρος: groupId, Τιμή: com.companyname.helloworld
[INFO] Παράμετρος: artifactId, Τιμή: helloworld
[INFO] Παράμετρος: packageName, Value: com.companyname.helloworld
[INFO] Παράμετρος: έκδοση, Τιμή: 1.0-SNAPSHOT
[INFO] project created from Old (1.x) Archetype in dir:/Users/zak/_work/
LearnBuildScripts/LearnMaven/helloworld
[ΠΛΗΡΟΦΟΡΙΕΣ] -------------------------------------------------- -------------------------
[ΠΛΗΡΟΦΟΡΙΕΣ] ΟΙΚΟΔΟΜΗΣΗ ΕΠΙΤΥΧΙΑΣ
[ΠΛΗΡΟΦΟΡΙΕΣ] -------------------------------------------------- -------------------------
[INFO] Συνολικός χρόνος: 8.602 s
[ΠΛΗΡΟΦΟΡΙΕΣ] Ολοκληρώθηκε στις: 2018-01-27T00: 05: 37-08: 00
[INFO] Τελική μνήμη: 15M/152M
[ΠΛΗΡΟΦΟΡΙΕΣ] -------------------------------------------------- -------------------------

Η δομή του φακέλου πρέπει να μοιάζει με αυτό:

Γειά σου Κόσμε
|- pom.xml
'- src
|- κύρια
| '-Ιάβα
| '-- με
| '-- Όνομα εταιρείας
| '-- Γειά σου Κόσμε
| '- App.java
'-δοκιμή
'-Ιάβα
'-- με
'-- Όνομα εταιρείας
'-- Γειά σου Κόσμε
'- AppTest.java

Το pom.xml περιέχει τις διαμορφώσεις κατασκευής. Μέσα στο pom.xml ο κώδικας μοιάζει με αυτόν:

xmlns='http://maven.apache.org/POM/4.0.0' xmlns: xsi='http://www.w3.org/2001/
XMLSchema-στιγμιότυπο '
xsi: schemaLocation='http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0
_0.xsd '>>
>>4.0.0>>
>>com.companyname.helloworld>>
>>Γειά σου Κόσμε>>
>>δοχείο>>
>>1.0-SNAPSHOT>>
>>Γειά σου Κόσμε>>
>>http://maven.apache.org>>
>>
>>
>>junit>>
>>junit>>
>>3.8.1>>
>>δοκιμή>>
>>
>>
>>

Μπορείτε να δημιουργήσετε το αρχείο jar χρησιμοποιώντας την ακόλουθη εντολή:

πακέτο $ mvn

[INFO] Σάρωση για έργα ...
[ΠΛΗΡΟΦΟΡΙΕΣ]
[ΠΛΗΡΟΦΟΡΙΕΣ] -------------------------------------------------- -------------------------
[INFO] Building helloworld 1.0-SNAPSHOT
[ΠΛΗΡΟΦΟΡΙΕΣ] -------------------------------------------------- -------------------------
[ΠΛΗΡΟΦΟΡΙΕΣ]
[ΠΛΗΡΟΦΟΡΙΕΣ] --- maven-resources-plugin: 2.6: πόροι (προεπιλεγμένοι πόροι) @ helloworld ---
[ΠΡΟΕΙΔΟΠΟΙΗΣΗ] Χρήση κωδικοποίησης πλατφόρμας (UTF-8 στην πραγματικότητα) για αντιγραφή φιλτραρισμένων πόρων, δηλ.
η κατασκευή εξαρτάται από την πλατφόρμα!
[ΠΛΗΡΟΦΟΡΙΕΣ] παράλειψη μη υπάρχοντος πόρου Directory/Χρήστες/zak/_work/LearnBuildScripts/LearnMaven/
helloworld/src/main/πόροι
[ΠΛΗΡΟΦΟΡΙΕΣ]
[INFO] --- maven-compiler-plugin: 3.1: compile (default-compile) @ helloworld ---
[INFO] Εντοπίστηκαν αλλαγές - επανασυγκρότηση της μονάδας!
[ΠΡΟΕΙΔΟΠΟΙΗΣΗ] Η κωδικοποίηση αρχείου δεν έχει οριστεί, χρησιμοποιώντας κωδικοποίηση πλατφόρμας UTF-8, δηλ. Το build είναι
εξαρτάται από την πλατφόρμα!
[ΠΛΗΡΟΦΟΡΙΕΣ] Συγκέντρωση 1 αρχείου προέλευσης σε/Χρήστες/zak/_work/LearnBuildScripts/LearnMaven/
helloworld/target/class
[ΠΛΗΡΟΦΟΡΙΕΣ]
[INFO] --- maven-resources-plugin: 2.6: testResources (default-testResources) @
Γειά σου Κόσμε ---
[ΠΡΟΕΙΔΟΠΟΙΗΣΗ] Χρήση κωδικοποίησης πλατφόρμας (UTF-8 στην πραγματικότητα) για αντιγραφή φιλτραρισμένων πόρων, δηλ.
η κατασκευή εξαρτάται από την πλατφόρμα!
[ΠΛΗΡΟΦΟΡΙΕΣ] παράλειψη μη υπάρχοντος πόρου Directory/Χρήστες/zak/_work/LearnBuildScripts/LearnMaven/
helloworld/src/test/πόροι
[ΠΛΗΡΟΦΟΡΙΕΣ]
[INFO] --- maven-compiler-plugin: 3.1: testCompile (default-testCompile) @ helloworld ---
[INFO] Εντοπίστηκαν αλλαγές - επανασυγκρότηση της μονάδας!
[ΠΡΟΕΙΔΟΠΟΙΗΣΗ] Η κωδικοποίηση αρχείου δεν έχει οριστεί, χρησιμοποιώντας κωδικοποίηση πλατφόρμας UTF-8, δηλ. Το build είναι
εξαρτάται από την πλατφόρμα!
[ΠΛΗΡΟΦΟΡΙΕΣ] Συγκέντρωση 1 αρχείου προέλευσης σε/Χρήστες/zak/_work/LearnBuildScripts/LearnMaven
/helloworld/target/test-class
[ΠΛΗΡΟΦΟΡΙΕΣ]
[INFO] --- maven-surefire-plugin: 2.12.4: test (default-test) @ helloworld ---
[INFO] Κατάλογος αναφοράς Surefire:/Users/zak/_work/LearnBuildScripts/LearnMaven
/helloworld/target/
ασφαλείς αναφορές

------------------------------------------------------ -----
Τ Ε Σ Τ Σ
------------------------------------------------------ -----
Εκτέλεση com.companyname.helloworld.AppTest
Εκτέλεση δοκιμών: 1, Αποτυχίες: 0, Σφάλματα: 0, Παράλειψη: 0, Χρόνος που παρέλειψε: 0.014 δευτ.

Αποτελέσματα :

Εκτέλεση δοκιμών: 1, Αποτυχίες: 0, Σφάλματα: 0, Παράλειψη: 0

[ΠΛΗΡΟΦΟΡΙΕΣ]
[ΠΛΗΡΟΦΟΡΙΕΣ] --- maven-jar-plugin: 2.4: jar (default-jar) @ helloworld ---
[INFO] Building jar:/Users/zak/_work/LearnBuildScripts/LearnMaven/helloworld/target/
helloworld-1.0-SNAPSHOT.jar
[ΠΛΗΡΟΦΟΡΙΕΣ] -------------------------------------------------- -------------------------
[ΠΛΗΡΟΦΟΡΙΕΣ] ΟΙΚΟΔΟΜΗΣΗ ΕΠΙΤΥΧΙΑΣ
[ΠΛΗΡΟΦΟΡΙΕΣ] -------------------------------------------------- -------------------------
[INFO] Συνολικός χρόνος: 5.624 s
[ΠΛΗΡΟΦΟΡΙΕΣ] Ολοκληρώθηκε στις: 2018-01-27T00: 11: 10-08: 00
[INFO] Τελική μνήμη: 16M/114M
[ΠΛΗΡΟΦΟΡΙΕΣ] -------------------------------------------------- -------------------------

Μπορείτε να εκτελέσετε το αρχείο jar ως εξής:

$ java -cp target/helloworld-1.0-ΣΤΙΓΜΙΟΤΥΠΟ.δοχείομε.Όνομα εταιρείαςΤοΓειά σου ΚόσμεΤοΕφαρμογή
Γειά σου Κόσμε!

Το αρχείο jar τοποθετείται στο φάκελο προορισμού.

Gradle

Ο Gradle συνδυάζει τη δύναμη του Ant και του Maven. Η πρώτη έκδοση του Gradle κυκλοφόρησε το 2012. Έχει υιοθετηθεί γρήγορα. Η Google το χρησιμοποιεί αυτήν τη στιγμή για λειτουργικό σύστημα Android.

Αντί για XML, το Gradle χρησιμοποιεί τη γλώσσα Groovy. Ως αποτέλεσμα, η δημιουργία σεναρίων στο Gradle είναι πιο εύκολο να γραφτεί και να διαβαστεί. Αρχικά χρησιμοποιούσε τον Ivy για τη διαχείριση της εξάρτησης, αλλά χρησιμοποιεί τη δική του μηχανή εξάρτησης τώρα.

Πλεονεκτήματα

  • Παρέχει τυποποίηση παραμένοντας ευέλικτος
  • Εύκολο να διαβάζετε και να γράφετε σενάρια δημιουργίας
  • Καλύτερος χειρισμός πολλαπλών εκδόσεων εξαρτήσεων
  • Ικανός να χειριστεί πολλές γλώσσες και τεχνολογίες προγραμματισμού
  • Ενεργή κοινότητα που βοηθά στην ανάπτυξη του εργαλείου
  • Το Gradle DSL (Domain-Specific Language) το καθιστά απλή δομή διαμόρφωσης
  • Το Gradle παρέχει βελτιώσεις στις επιδόσεις χρησιμοποιώντας σταδιακά, τη δημιουργία προσωρινής μνήμης και τον δαίμονα Gradle

Μειονεκτήματα

  • Η ενσωμάτωση του IDE δεν είναι τόσο καλή όσο η Maven

Παράδειγμα Gradle

Μπορείτε να εγκαταστήσετε το Gradle από εδώ Το Μόλις ρυθμίσετε το Gradle στη διαδρομή σας, μπορείτε να το ελέγξετε με:

$ gradle--εκδοχή

------------------------------------------------------ ----------
Gradle4.5
------------------------------------------------------ ----------

Χρόνος κατασκευής:2018-01-24 17: 04:52UTC
Αναθεώρηση: 77d0ec90636f43669dc794ca17ef80dd65457bec

Groovy: 2.4.12
Μυρμήγκι: Apache Ant(ΤΜ)έκδοση 1.9.9 που συντάχθηκε τον Φεβρουάριο2 2017
JVM: 1.8.0_74(Oracle Corporation25,74-b02)
Λειτουργικό σύστημα: Mac OS X 10.11.6 x86_64

Στη συνέχεια, δημιουργήστε την ακόλουθη δομή καταλόγου:

Γειά σου Κόσμε
| -χτίζω.gradle
'-src
| -κύριος
'-Ιάβα
'-Γειά σου Κόσμε
'-Γειά σου Κόσμε.Ιάβα

Για το helloworld.java βάλτε τον κώδικα από το παράδειγμα του Ant. Και για το build.gradle βάλτε τον ακόλουθο κώδικα:

εφαρμόστε προσθήκη: 'Ιάβα'

εκδοχή= '1.0'

αποθετήρια{
mavenCentral()
}

εξαρτήσεις{
testCompile ομάδα: 'junit', όνομα: 'junit', εκδοχή: '4.12'
}

Μπορείτε να χρησιμοποιήσετε εργασίες gradle - όλες οι εντολές για να δείτε όλες τις διαθέσιμες εντολές. Το Gradle παίρνει αυτόματα τα πρόσθετα που καθορίζετε στο αρχείο build.gradle και σας δείχνει τις επιπλέον διαθέσιμες εργασίες λόγω των προσθηκών.

Μπορείτε να αποκτήσετε την κατασκευή εκτελώντας:

βάζο $ gradle

ΧΤΙΖΩ ΕΠΙΤΥΧΗΣ σε 1 δευτ
2ενεργή καθήκοντα:2εκτελέστηκε

Μπορείτε να εκτελέσετε το βάζο σας ως εξής:

$ java -cp build/libs/helloworld-1.0ΤοδοχείοΓειά σου Κόσμε
Γειά σου Κόσμε!

Το αρχείο jar τοποθετείται στο φάκελο build/libs.

συμπέρασμα

Μεταξύ των εργαλείων κατασκευής, το Ant μπορεί να είναι χρήσιμο για μικρότερα έργα, ενώ το Maven είναι καλύτερο για να βεβαιωθείτε ότι όλοι οι προγραμματιστές ακολουθούν τους ίδιους κανόνες. Το Gradle είναι το πιο πρόσφατο εργαλείο που παρέχει τη μεγαλύτερη ευελιξία.

Βιβλιογραφικές αναφορές: