Ένα build του Gradle που ξεκινά από IDE μπορεί να χρησιμοποιεί διαφορετική ρύθμιση από το ίδιο έργο όταν ξεκινά από τερματικό. Πριν κατηγορήσετε μια παλιά διεργασία proxy, συγκρίνετε τον αρχικό κατάλογο χρήστη του Gradle, τη JVM και τις ιδιότητες proxy σε κάθε εκκίνηση.

Το Gradle τεκμηριώνει τις ιδιότητες proxy της JVM

Για διαδρομές HTTP και HTTPS, ένα αρχείο ιδιοτήτων μπορεί να περιέχει:

systemProp.http.proxyHost=203.0.113.10
systemProp.http.proxyPort=8080
systemProp.https.proxyHost=203.0.113.10
systemProp.https.proxyPort=8080
systemProp.http.nonProxyHosts=localhost|*.example.internal

Χρησιμοποιήστε το εκχωρημένο endpoint· για επιτρεπόμενες διαδρομές προς δημόσια αποθετήρια, η λίστα HTTP proxy παρέχει πιθανά ζεύγη host και port. Η ιδιότητα παράκαμψης HTTPS είναι επίσης http.nonProxyHosts· η επινόηση του https.nonProxyHosts δεν είναι τεκμηριωμένη διόρθωση. Οι ιδιότητες host περιέχουν διεύθυνση, όχι πλήρες proxy URL.

Η εξαγωγή του HTTP_PROXY σε shell δεν αποδεικνύει από μόνη της ότι αυτός ο πελάτης JVM το χρησιμοποιεί ως πολιτική proxy. Ελέγξτε τις ιδιότητες που υποστηρίζει η εφαρμογή.

Ο daemon λαμβάνει πληροφορίες build

Η τρέχουσα τεκμηρίωση του Gradle λέει ότι ο πελάτης στέλνει στον daemon πληροφορίες build, συμπεριλαμβανομένων μεταβλητών περιβάλλοντος. Επομένως η γενική εξήγηση «ο daemon δεν λαμβάνει ποτέ νέες μεταβλητές περιβάλλοντος» είναι ανακριβής.

Ορισμένες ιδιότητες εκκίνησης της JVM, όπως εκείνες του trust store, είναι αμετάβλητες για JVM που εκτελείται. Μια αλλαγή στο Java home ή στη ρύθμιση εκκίνησης του trust store μπορεί έτσι να έχει σημασία, ακόμη και όταν οι συνήθεις τιμές περιβάλλοντος μεταδίδονται.

Συγκρίνετε τις δύο εκκινήσεις

Ελέγξτε ποια διανομή Gradle και ποιο Java runtime επιλέγει το IDE. Ελέγξτε αν χρησιμοποιεί το ίδιο GRADLE_USER_HOME και τις ίδιες ιδιότητες χρήστη με το τερματικό. Μια καταχώριση proxy στη ρύθμιση ενός χρήστη δεν δείχνει τι φόρτωσε άλλο περιβάλλον.

Αν μια αλλαγμένη απαίτηση εκκίνησης χρειάζεται διαφορετικό daemon, χρησιμοποιήστε τα τεκμηριωμένα στοιχεία ελέγχου του daemon για την αντίστοιχη έκδοση Gradle. Μην αντιμετωπίζετε τη διακοπή daemon ως υποκατάστατο για την εύρεση λανθασμένης ιδιότητας ή αρχείου ρυθμίσεων που λείπει.

Τέλος, εντοπίστε το αίτημα που απέτυχε. Οι λήψεις του Wrapper, η επίλυση εξαρτήσεων build και τα αιτήματα διακλαδισμένων διεργασιών εφαρμογής ή δοκιμών δεν αποτελούν αυτόματα ένα ενιαίο δικτυακό περιβάλλον. Επαληθεύστε τη διεργασία που κάνει το αίτημα πριν περιμένετε από ιδιότητα Gradle να την ελέγξει.

Σχετικά άρθρα