2015-01-03 10 views
7

Hier ist meine dummybuild.gradle-Datei des Projekts:Publishing Gradle Schnappschüsse lokal

apply plugin: 'groovy' 

repositories { 
    mavenLocal() 
    mavenCentral() 
} 

dependencies { 
    compile 'org.codehaus.groovy:groovy-all:2.3.3' 
    compile 'org.slf4j:jcl-over-slf4j:1.7.7' 

    testCompile 'junit:junit:4.11' 
    testCompile 'org.mockito:mockito-all:1.10.8' 
} 

task sourcesJar(type: Jar, dependsOn: classes) { 
    classifier = 'sources' 
    from sourceSets.main.allSource 
} 

artifacts { 
    archives sourcesJar 
} 

task wrapper(type: Wrapper) { 
    gradleVersion = '1.11' 
} 

Als ich gradle clean build -Pversion=1.2.3 laufen, diese Pakete alle meine Code und erzeugt ein build/libs/dummy-1.2.3.jar für mich.

Ich möchte die absolute Nötigste Menge an Gradle Code wissen notwendig, damit ich meine „Dummy“ JAR-Dateien auf meinem lokalen Maven-Cache veröffentlichen konnte (mavenLocal()). Wie funktioniert das bei der Versionierung? I könnte immer eine konkrete Version für die Dummy-JAR angeben, aber wenn ich lokal veröffentlichen, macht es mehr Sinn (zumindest für mich), SNAPSHOT Versionen zu veröffentlichen. I könnte nur gradle clean build -Pversion=0.1.SNAPSHOT ausführen, aber dann ist meine Sorge, ob andere lokale Projekte die neuesten SNAPSHOT Versionen abholen würden oder nicht.

Also noch einmal:

  1. Was ist das bloße Code Mindest dummy lokal zu veröffentlichen?
  2. Jede Möglichkeit, bei der Veröffentlichung lokal, um eine SNAPSHOT Version anzugeben, dass andere Projekte immer die neueste Kopie von?
  3. Welche anderen lokalen Projekte müssen verwendet werden, um diese SNAPSHOT aufzunehmen? So etwas wie compile ':dummy:LATEST'?
+1

Wurde die von Ihnen gestellte Frage beantwortet? Wenn ja, bitte die Antwort akzeptieren. – Opal

Antwort

1

1) Sie brauchen nur ein

gradle install 

2) zu tun Geben Sie, was Version Sie wollen - eine Snapshot-Version sorgt für aktive Entwicklung Sinn. Sobald Sie glauben, dass sich Ihre Bibliothek weniger ändert, sollten Sie sich definitiv für eine Version ohne Snapshot entscheiden.

3) Sie müssen eine Abhängigkeit von der Version angeben, die Sie in Ihrem lokalen Repository haben, genau wie für Bibliotheken von Drittanbietern.

+1

Welches Plugin wird benötigt, um das auszuführen? Ich bekomme dies, wenn ich versuche: '' ' Task 'installieren' nicht im Root-Projekt 'Kotti' gefunden. '' ' – Adeynack

7

Here Ich habe Beispielprojekt für Sie vorbereitet, das ist das absolute Minimum, wenn es um build.gradle Konfiguration geht.

  1. Sie müssen apply plugin: 'maven' hinzuzufügen und setzen group = 'somegroup'. maven Plugin gibt install Aufgabe und group ist erforderlich, Artefakt in Maven Repository zu installieren.

    Dann führen Sie gradle clean install. Wenn keine Version übergeben wurde, wird nicht spezifiziert ausgewertet, wenn keine artifactId konfiguriert ist, wird es auf project.name ausgewertet. Here Sie können herausfinden, wie Sie andere maven-Eigenschaften konfigurieren.

    Installieren von Snapshot für die lokale Entwicklung ist definitiv eine gute Idee.

  2. Wenn Sie möchten, dass ein anderes Projekt immer die neueste Version von SNAPSHOT auswählt Sie müssen den folgenden Code zu build.gradle Skripten hinzufügen. Es garantiert die Auflösung auf die neueste Version.

    configurations.all { 
        resolutionStrategy { 
        cacheChangingModulesFor 0, 'seconds' 
        } 
    } 
    
  3. Zu allererst müssen Sie Snapshot-Repo repositories Block (nur ein Beispiel) hinzufügen - mit lokaler Maven-Repo, ist dieser Schritt nicht erforderlich ist:

    maven { 
        url 'https://oss.sonatype.org/content/repositories/snapshots' 
    } 
    

    Abhängigkeit soll wie folgt angegeben werden:

    group:artifact:0.+ 
    

Fühlen Sie sich frei im Falle von Fragen zu stellen.