2016-11-18 2 views
1

Ich möchte mein Problem mit Ihnen teilen. Vielleicht hat sich auch jemand diesem Problem gestellt und wird eine Lösung haben. In Kürze Gradle löst häufig wechselnde Abhängigkeiten nicht auf. Wir verwenden:Gradle "ändern" Abhängigkeiten Management

./gradlew -v 

------------------------------------------------------------ 
Gradle 2.12 
------------------------------------------------------------ 

Build time: 2016-03-14 08:32:03 UTC 
Build number: none 
Revision:  b29fbb64ad6b068cb3f05f7e40dc670472129bc0 

Groovy:  2.4.4 
Ant:   Apache Ant(TM) version 1.9.3 compiled on December 23 2013 
JVM:   1.8.0_66 (Oracle Corporation 25.66-b17) 
OS:   Linux 2.6.18-409.el5 amd64 

Lassen Sie mich versuchen zu erklären, was passiert ist. Wir haben ein Projekt, das von einem anderen unabhängigen Projekt abhängig ist. Beide sind in aktiver Entwicklung. One ist: String-Parser Version: 1.0.0-SNAPSHOT Zweite ist: Tools-utils Version: 2.2.0-SNAPSHOT Wir internen Maven artifactory haben und wir konfiguriert es in String-Parser:

# some code there 
configurations.all { 
    resolutionStrategy.cacheChangingModulesFor 0, TimeUnit.MILLISECONDS 
} 

repositories { 
    mavenLocal() 
    maven { url 'https://some.internal.com/deploy-snapshot'} 
    maven { url 'https://some.internal.com/deploy-release'} 
    } 

dependencies { 
# Some other dependencies listed here 
    compile('com.some.group:tools-utils:2.2.0-SNAPSHOT') { 
    changing = true 
    } 
} 

Also, wenn wir Änderungen an lokalen Arbeitsplatz tun (Windows - ich denke, es spielt keine Rolle) für Tools-utils und letzten Snapshot Artefakt Version laden lokale und remote Maven alles in Ordnung ist. Wir gehen zu String-Parser Projekt drücken Sie "Reimport" -Taste (in Intellij Idea 2016.1.2) und Gradle wechseln, um Abhängigkeit Version zu korrigieren. Aber wenn jemand einige Änderungen vornimmt und eine neue Version auf Maven remote hochlädt, aktualisiert es die Abhängigkeit im Cache nicht und zeigt immer noch auf die alte Version. Um es zu beheben, müssen wir das Artefakt manuell aus dem Gradle-Cache und (!) Von Maven Local löschen.

Könnten Sie mir bitte etwas raten, weil Cache manuell zu bereinigen (oder mit Zusatzschritt auf TeamCity) ein Albtraum ist?

+0

in Putting Haben Sie versucht, die 'Ändern = true' zu ​​entfernen? Das Caching sollte bei Ihrer 'resolutionStrategy' deaktiviert werden. – JBirdVegas

+0

Verwenden Sie Gradle über die Befehlszeile? Wenn ja, haben Sie versucht, den Parameter --refresh-dependencies hinzuzufügen? –

Antwort

0

Versuchen Sie, diese allprojects

// forces all changing dependencies (i.e. SNAPSHOTs) to automagicially download 
    // (thanks, @BillBarnhill!) 
    configurations.all { 
     resolutionStrategy { 
      cacheChangingModulesFor 0, 'seconds' 
     } 
    } 

Source: Gradle-Fury

+0

Vielen Dank! Das Ding funktioniert richtig. –

Verwandte Themen