Ich muss gerade in einer Firmenumgebung unter Windows ein Play-Projekt zum Übersetzen bekommen. Dabei taten sich mit Activator und Co diverse Hindernisse auf. Das Sammeln der einzelnen Lösungsteile hat doch einiges an Zeit gekostet, ich hoffe, dass die gebündelten Infos hier anderen weiterhelfen!
Leerzeichen im Pfad
Damit hat das Activator-Batchfile wohl Probleme. Wie in diesem Bugreport beschrieben fehlt da ein Paar Anführungszeichen.
Proxy konfigurieren
Ich wollte die Proxy-Konfiguration zusammen mit dem Projekt in die
Versionskontrolle einchecken, um anderen Kollegen (und dem Buildserver)
ein einfaches Übersetzen zu ermöglichen. Die Datei conf/sbtconfig.txt
liegt nun in meinem Play-Projekt:
-Dhttp.proxyHost=proxy.firma.de
-DhttpProxyPort=8080
-Dhttps.proxyHost=proxy.firma.de
-DhttpsProxyPort=8080
-Djavax.net.ssl.trustStore=cacerts
Zur letzten Zeile komme ich im folgenden Abschnitt :-)
Firmeneigene SSL-Zertifikate
Der Proxy hier zeigte ein leider etwas unhandliches Verhalten: In den
meisten Fällen erlaubte er eine direkte Verbindung (mit den
Orginalzertifikaten), bei manchen Seiten schaltete er sich jedoch als
Man-in-the-Middle mit einem spontan generierten Zertifikat dazwischen.
Diese Zertifikate waren glücklicherweise alle von derselben Proxy-CA
signiert. Aber wie an das Zertifikat herankommen? Erstaunlicherweise
half hier das Java-keytool mit dem Befehl keytool
-J-Dhttps.proxyHost=proxy.firma.de -J-Dhttps.proxyPort=8080
-printcert -rfc -sslserver dl.bintray.com:443
.
Das Kommando erzeugt eine Verbindung durch den Proxy zum angegebenen
Server und gibt die Zertifikatskette aus. Das letzte der angezeigten
Zertifikatsblöcke ist die Proxy-CA. Diese muss in den Truststore des
JREs aufgenommen werden; da ich aber nicht die JDK-Installation
verändern wollte, erzeugte ich eine Kopie von
%JAVA_HOME/jre/lib/security/cacerts
in der Wurzel des
Projektverzeichnisses. Die Infos der Proxy-CA in eine Datei proxy.crt
kopieren und in den Truststore importieren: keytool -importcert -file
proxy.crt -alias "Firmenproxy" -keystore cacerts
(das Passwort lautet
“changeit”)
That’s it! Nun läd Activator brav sämtliche Abhängigkeiten und sbt-Plugins herunter, und auch IntelliJ IDEA kommt damit klar und erkennt Libraries und zugehörige Sourcen.