Σχετικά με εμάς
Στο 1C αναπτύσσουμε όχι μόνο μια πλατφόρμα
Είσοδος
Τις περισσότερες φορές χρησιμοποιούμε το maven ως σύστημα κατασκευής για εφαρμογές Java και σε αυτό το σύντομο άρθρο θα θέλαμε να μιλήσουμε για ένα από τα προβλήματα που έπρεπε να αντιμετωπίσουμε στη διαδικασία οργάνωσης της ανάπτυξης και για την προσέγγιση που μας επέτρεψε να το ξεπεράσουμε πρόβλημα.
Προαπαιτούμενα και ροή εργασιών
Λόγω των ιδιαιτεροτήτων της ανάπτυξης στα maven έργα μας, χρησιμοποιούμε πολλές ενότητες, εξαρτήσεις και παιδικά έργα. Ο αριθμός των αρχείων pom σε ένα δέντρο μπορεί να είναι σε δεκάδες ή και εκατοντάδες.
Φαίνεται: δεν είναι σπουδαίο, το δημιούργησαν μια φορά και το ξέχασαν. Εάν πρέπει να αλλάξετε ή να προσθέσετε κάτι σε όλα τα αρχεία ταυτόχρονα, υπάρχουν πολλά βολικά εργαλεία σε προγράμματα επεξεργασίας και IDE. Ποια είναι η πιο συνηθισμένη τακτική αλλαγή στο pom.xml; Πιστεύουμε ότι αλλαγές στις εκδόσεις και τις εξαρτήσεις του έργου. Ίσως κάποιος θέλει να διαφωνήσει με αυτό, αλλά αυτή ακριβώς είναι η κατάσταση με εμάς. Ο λόγος έγκειται στο γεγονός ότι, μαζί με τον πυρήνα, αναπτύσσουμε ταυτόχρονα πολλές από τις δικές μας βιβλιοθήκες και για τη συνεχή αναπαραγωγιμότητα των αποτελεσμάτων κατασκευής και δοκιμών, η χρήση στιγμιότυπων δεν μας φαίνεται βολική προσέγγιση. Για το λόγο αυτό, είναι απαραίτητο να αυξήσετε τον αριθμό έκδοσης σε έργα με κάθε έκδοση.
Επίσης, κατά καιρούς, ένας προγραμματιστής χρειάζεται να δημιουργεί το δικό του υποκατάστημα μιας βιβλιοθήκης και να ελέγχει τη λειτουργικότητά του σε σχέση με όλες τις εξαρτήσεις, για τις οποίες πρέπει να αλλάξει χειροκίνητα την έκδοση όλων αυτών.
Αρχική λύση
Με τόσο συχνές και πολλαπλές αλλαγές εκδόσεων, θέλω να απλοποιήσω και να αυτοματοποιήσω τη διαδικασία εντός του CI. Εδώ έρχεται να σώσει ένα βολικό, γνωστό πρόσθετο. versions-maven-plugin - συνδέστε το και εκκινήστε το
mvn -N εκδόσεις:set -DnewVersion=2.0.1
και ο Maven θα κάνει τα πάντα όπως πρέπει: θα διατρέχει την ιεραρχία από πάνω προς τα κάτω, αντικαθιστώντας όλες τις εκδόσεις - ομορφιά! Τώρα το μόνο που μένει είναι να υποβάλετε ένα αίτημα έλξης, οι συνάδελφοι θα εξετάσουν τις αλλαγές και μπορείτε να συμμετάσχετε γρήγορα στον κορμό. Γρήγορα? Όπως κι αν είναι. Μια δυο εκατοντάδες pom.xml για έλεγχο, και αυτό δεν υπολογίζει τον κωδικό. Επιπλέον, κανείς δεν είναι ασφαλής από συγκρούσεις συγχώνευσης με τόσο μεγάλο αριθμό αλλαγμένων αρχείων. Θα πρέπει να σημειωθεί εδώ ότι στη διαδικασία CI, οι αλλαγές έκδοσης συμβαίνουν αυτόματα μαζί με αλλαγές στη λειτουργικότητα και όχι με κάποιο τρόπο ξεχωριστά.
Νέες δυνατότητες
Για λίγο ηρεμήσαμε και, έχοντας παραιτηθεί, ζήσαμε έτσι μέχρι τα παιδιά από
mvn -Drevision=2.0.0 καθαρό πακέτο
Οι τιμές των ιδιοτήτων του συστήματος υπερισχύουν των τιμών που ορίζονται στοιδιότητες>.
Ο γονέας
4.0.0
org.apache
απάχης
18
org.apache.maven.ci
ci-γονέας
Πρώτο CI Friendly
${revision}${sha1}${changelist}
...
1.3.1
-ΣΤΙΓΜΙΟΤΥΠΟ
Απόγονος
4.0.0
org.apache.maven.ci
ci-γονέας
${revision}${sha1}${changelist}
org.apache.maven.ci
σι-παιδί
...
Εάν θέλετε να δημιουργήσετε την έκδοση 2.0.0-SNAPSHOT, τότε απλώς χρησιμοποιήστε
mvn -Drevision=2.0.0 καθαρό πακέτο
Εάν θέλετε να κάνετε μια κυκλοφορία, απλώς επαναφέρετε το SNAPSHOT
mvn -Dchangelist= καθαρό πακέτο
*Τα παραπάνω παραδείγματα προέρχονται από
Σκληρή πραγματικότητα
Όλα είναι καλά και υγιή, ήρθε η ώρα να νιώσετε μια αίσθηση ικανοποίησης, αλλά όχι. Αποδεικνύεται ότι αυτή η μέθοδος δεν θα λειτουργήσει για εγκατάσταση και ανάπτυξη, καθώς δεν θα αντικατασταθεί στις περιγραφές των τεχνουργημάτων που δημοσιεύονται στο αποθετήριο ${αναθεώρηση} σχετικά με το νόημά του και ο Maven δεν θα καταλάβει πλέον περί τίνος πρόκειται.
org.apache
απάχης
${αναθεώρηση}
Ένα φως στην άκρη ενός τούνελ
Πρέπει να αναζητήσουμε μια λύση στο πρόβλημα. Θα μπορούσε να είχε σώσει την κατάσταση
Προσθήκη πρόσθετου στο έργο
org.codehaus.mojo
flatten-maven-plugin
1.1.0
αληθής
ZgjidhCiFriendliesOnly
ισοπεδώνω
διαδικασία-πόρων
ισοπεδώνω
ισοπεδώνω.καθαρίζω
ΚΑΘΑΡΗ
ΚΑΘΑΡΗ
Έγινε!
Χαρούμενο τέλος
Από εδώ και πέρα, για να αλλάξουμε την έκδοση ολόκληρου του έργου και να το γνωρίζουν όλες οι εξαρτήσεις, πρέπει απλώς να επεξεργαστούμε το στοιχείοαναθεώρηση> μόνο στη ρίζα pom.xml. Δεν φτάνουν εκατό ή δύο από αυτά τα αρχεία με την ίδια αλλαγή στην αναθεώρηση, αλλά ένα. Λοιπόν, δεν υπάρχει ανάγκη χρήσης versions-maven-plugin.
Πηγή: www.habr.com