Gradle, funktioniert nicht hinter proxy mit NTLM unter Windows
Ich bin nur Erprobung eines gradle (ein absoluter noob in diesem Gebiet).
Ich versuche das auf der Windows-box. Früher habe ich Maven tun, die build-und release-für mich aus der gleichen Maschine. Es ist hinter einem proxy mit NTLM-Authentifizierung. Und das funktioniert gut. Aber irgendwie Gradle ist nicht zu tun für mich.
Meine bauen.gradle hat den folgenden config (abgesehen von anderen)
//Java plugin to build our JAR artifact.
apply plugin: 'java'
//Build stuff with jdk 1.7
sourceCompatibility = 1.7
targetCompatibility = 1.7
//Regular name and version for your project.
group = 'foo.bar.gradle'
version = '1.0-SNAPSHOT'
//The local maven repository
def localMavenRepo = 'file://C:/ProgramFiles/MavenRepository'
repositories {
//Use the maven central repository.
mavenCentral()
//... and the local maven repository.
maven { url localMavenRepo }
//maven { url 'http://www.springsource.com/repository/' }
}
dependencies {
compile 'org.databene:contiperf:2.2.0','org.springframework:spring-webmvc:3.2.0.RELEASE'
testCompile 'junit:junit:4.11'
/*compile.exclude module: 'commons'*/
/*all*.exclude*/
}
Mein /gradle.Eigenschaften hat die folgenden set-up
systemProp.proxySet=true
systemProp.http.proxyHost=<proxy name, same as that set in Maven>
systemProp.http.proxyPort=8080
systemProp.http.proxyUser=<domain name>/<user name>
Jedoch, wenn ich diese ausführe, bekomme ich folgende Fehlermeldung
NEGOTIATE authentication error: No valid credentials provided (Mechanism level:
No valid credentials provided (Mechanism level: Failed to find any Kerberos tgt)
)
Dies ist in der version 1.3 von Gradle. Bitte helfen Sie.
Update:
Ich habe jetzt aktualisiert, um gradle-1.4-rc-3
Mein gradle.properties-Datei sieht nun so aus
systemProp.proxySet="true"
systemProp.http.keepAlive="true"
systemProp.http.proxyHost=<proxy name>
systemProp.http.proxyPort=8080
systemProp.http.proxyUser=<domain name>/<username>
Aber ich habe dennoch weiterhin das Problem sehen. Ich habe ein paar Protokolle mehr. Ich sehe das in der STS (IDE)
Could not GET 'http://repo1.maven.org/maven2/org/spr...'. Received status code 500 from server: Internal Server Error
Could not execute build using Gradle installation 'C:\ProgramFiles\gradle-1.4-rc-3'.
Und Nein, die Zugangsdaten sind nicht falsch. In der gleichen Konfiguration mit den gleichen Werten Maven ist in Ordnung. Und Nein, die gradle.Eigenschaften in der korrekten Lage als gut. Wenn ich den Wert ändern, den proxy, der Fehler ändert. So, das tool ist definitiv das Lesen der gradle.Eigenschaften-Datei.
- Hast du dieses Problem lösen? Im vor dem gleichen Problem. Im hinter einem proxy und Im mit Gradle 2.3
- Sie waren in der Lage, dieses Problem zu lösen? Ich bin auch vor dem gleichen!
- Sehen Mannfred Berndtgen die Antwort von unten. Zusätzlich zu den mit cntlm und läuft und unter http.proxyHost, http.proxyPort auf ihn hinweisen (wie oben), müssen Sie auch die HTTPS-äquivalente (https).proxyHost, https.proxyPort) zeigt auf den gleichen cntlm-Instanz.
Du musst angemeldet sein, um einen Kommentar abzugeben.
UPDATE:
mit der Zeit besser Lösung:
Hinzufügen wagon-http-leichte Verlängerung
Wagon-HTTP-lightweight-Bibliothek befasst sich mit der Authentifizierung Einschränkungen in Maven 3 bei der Arbeit mit NTLM-Proxys.
Herunterladen wagon-http-lightweight-2.2.jar aus dem maven-repo.
Kopieren Sie die wagon-http-lightweight-2.2.jar zu %M2_HOME%/lib/ext Ordner.
Original Antwort:
Ich hatte genau das gleiche problem. Es ist ein gemeinsames problem mit microsoft Server (ISA, etc.). Die http-header in der Anwendung nicht unterstützt NTLM (zumindest direkt)
Zu umgehen, habe ich eine "proxy-zu-proxy". Ein lokaler proxy, der den http-header-on-the-fly, so dass die Microsoft-Server kann verstehen Ihre Anfrage.
Im Grunde werden Sie senden Sie Ihre Anfrage lokal (127.0.0.1) in diesem proxy-server ändern Sie die Kopfzeile mit der NTLM-konformen Antrag und leitet ihn an den übergeordneten proxy auf dem port 8080.
Zwei Szenarien: Sie haben die Administratoren privilegierte oder nicht.
Wenn Sie admin-Rechte installieren möchten, können Sie CNTLM Es wird als Dienst installiert werden. Es ist ein "auto-config" installieren, können Sie auf der wiki von CNTLM (Standard-port:3128)
Wenn Sie nicht über Admin-Rechte verfügen, können Sie installieren NTLM-APS (auch wenn es ziemlich alt ist, es funktioniert für mich)
Sie müssen den server konfigurieren.cfg-Konfigurationsdatei mit Ihrem NT-Domäne, host -, parent-proxy + port, NTLM_TO_BASIC 1
(Sie können Ihre domain und host, drücken Sie auf Ihrer Tastatur die "windows + pause" - buttons)
der Standard-port 5865.
Für NTLMAPS, benötigen Sie Python (python portable erfordert keine admin-Rechte, und ändern Sie den Wert in " runserver.bat' entsprechend Ihrer Installation)
und Sie müssen auch patch die version auf sourceforge mit dieser patch, weil es eine bug mit chunked Antworten
In Ihrer Anwendung ist, müssen Sie Ihre proxy-Einstellungen geändert wie folgt:
Manchmal die microsoft-server noch immer blockiert die Anfragen und ich muss neu starten mein lokaler proxy oder ändern der parent-proxy-Adresse.
Dies ist eine ziemlich alte Frage, aber immer noch einer der ersten Treffer beim googeln nach 'gradle' und 'ntlm-proxy". Es gibt nicht viel Dokumentation darüber, aber wenn gradle beschwert sich über etwas, wie
ist und Sie cntlm als Ihr Bevollmächtigter dann diese Befehlszeile könnte hilfreich sein:
(vorausgesetzt, default-Werte für die proxy-name und port). Beachten Sie die "https" - Einstellungen. Fehlende downloads wurden die arbeiten erfolgreich mit diesen Einstellungen.
Ich erinnere mich an die Arbeit, die hinter einem NTLM-proxy in der Vergangenheit. Während wir arbeiteten auf *nix-Kisten, die wir nicht nutzen konnten, NTLM-proxy, da es keine Unterstützung für die es in diesen Betriebssystemen. Ich glaube auch nicht, dass Gradle unterstützt NTLM, aber ich könnte falsch sein.
Jedenfalls, die Sache, die wir damals verwendet wurde (cntlm)[http://cntlm.sourceforge.net/] proxy-und Sie könnte das gleiche tun. Nur stellen Sie es auf Ihrem Computer und zeigen Sie Gradle proxy-Einstellungen an.
BEARBEITEN: Anscheinend ich war falsch - Gradle unterstützt die NTLM-Authentifizierung finden Sie unter release notes für 1.0-milestone-8
Gradle hängt davon ab, Apache HttpClient + jcifs zu tun, die NTLM-Authentifizierung.
Es ist ein Fehler in HttpClient 4.2.1 und 4.2.2, die Probleme verursachen können: es gibt 2 Möglichkeiten für Sie, um zu versuchen.
systemProp.http.keepAlive="true"
in Ihremgradle.properties
Datei.Sehen, dass Sie Ihre maven-repo ist unter C:\ProgramFiles und nicht in einem typischen schreiben-in der Lage Lage, wie in einem user-Verzeichnis
Ihre Fehler kann werden windows-Berechtigungen Fehler ... stellen Sie sicher Sie überprüfen Sie Ihre windows-Protokolle und/oder versuchen Sie, Ihre repo-zu einem traditionellen Standort ...
War ich in der Lage, um den patch Gradle core v1.10 verwenden Sie die Standardauthentifizierung anstelle der NTLM -, und es funktionierte in unserer Umwelt.
In den Fall, Sie wollten, um zu versuchen, die jar-Datei ist hier
Nutzung auf eigene Gefahr.