2015-09-01 11 views
11

Ich habe die folgende Projektstruktur:Gradle Eclipse Aufgabe hinzufügen nicht die richtige gradle Natur

  • Wurzel gradle (build.gradle)
    • Projekt-Gruppe 1 (kein Build-Datei)
      • project1 (build.gradle)
      • project2 (build.gradle)
      • ...
    • Projekt-group2 (kein Build-Datei)
      • ...

geschieht also, dass ich oft Eclipse-Projekte erstellen. Ich führe Befehl:

Nach einer Reihe von Läufen "Eclipse" Task funktioniert nicht mehr wie erwartet. Das heißt, fügt es nicht gradle Natur zu den Projekten mehr und erkennt nicht

sourceCompatibility = 1.6 

mehr versucht, alles mit 1.8-Version von Java zu bauen.

Ich habe folgendes an der Wurzel build.gradle:

allprojects { 
    sourceCompatibility = 1.6 
    eclipse.project { 
     natures 'org.springsource.ide.eclipse.gradle.core.nature' 
    } 
    // more stuff here ... 
} 

Das mit dem Stammprojekt geholfen, aber hatte keinen Einfluss auf jedem anderen Projekt. Ich habe das gleiche Teilprojekt mit dem gleichen unbefriedigenden Ergebnis hinzugefügt. Ich muss sagen, sogar nachdem die Natur zum Root-Projekt hinzugefügt wurde und Gradle-Plugin-Optionen wieder für den Root verfügbar sind, sehe ich immer noch nicht das "G" -Symbol.

So sieht es aus, als ob ich 2 Probleme mit der Gradle-Setup habe.

  1. Verschwinden der Großbuchstaben Natur. Nach einigen Durchläufen hört Eclipse auf, Großprojekte zu erkennen. Ich würde nicht einmal das zweite Problem haben, wenn das richtig funktioniert.

  2. Ein Problem mit meinem grdle Build Dateien oder Projektlayout, da meine Einstellungen nicht auf Teilprojekte wirken.

  3. Fehlendes "G" -Symbol für das Projekt mit wiederhergestellter Gradle-Natur.

Jede Hilfe würde sehr geschätzt werden!

+1

Ich nur von Eclipse aktualisieren, aber anpassen mit dem Gradle Eclipse-Plugin. Ich bin auf Probleme gestoßen, bei denen 'afterEvaluate' Rassen aufgelöst hat, also könntest du das versuchen, um zu sehen, ob du die Änderung bis zum Ende der Konfigurationsphase verzögern musst. –

+1

Ich bin mit @BenManes auf diesem. Es ist möglich, dass Ihr allprojects-Block ausgeführt wird, bevor eine Liste von Teilprojekten zusammengestellt wird, was zu dem Verhalten führt, das Sie sehen. Haben Sie versucht, nachEvaluate zu verwenden? – RaGe

Antwort

4

Installieren Gradle plug-in for Eclipse

Dann Eclipse-Menü: Datei -> Importieren ... das Gradle Projekt zu importieren. Es wird die Gradle Natur hinzufügen. Und 2 zusätzliche Eclipse-Ansichten, eine für schnell ablaufende Gradle-Aufgaben.Eine für Gradle Ausgabe dieser ausgeführten Aufgaben.

TIPP: Bevor ein vorhandenes Gradle Projekt importieren, erstellen Sie ein New Gradle Projekt, um zu sehen, ob die Gradle Plug-in wie erwartet funktioniert.

New Gradle Projekt

  • Verwenden Sie das eclispe Menü: Datei -> Neu -> Weitere ...
  • den Assistenten auswählen: Gradle -> Gradle Projekt
  • eingeben der Projektname
  • Drücken Sie die Taste Fertig

Dies sollte ein minimales Gradle-Projekt einrichten.

+0

Das ist was ich habe. – ATrubka

+1

Dann sollten Sie nicht die 'grdle cleanEclipse eclipse' Befehle verwenden. Beim Generieren werden die gleichen/ähnlichen Dateien wie beim Plugin _Gradle for Eclipse_ verwendet. Entfernen Sie auch die 'Eclipse.Projekt {...} 'Teil von der Gradle-Build-Datei. Es wird nicht vom _Gradle for Eclipse_-Plugin verwendet. Und kann nur andere Entwickler des Projekts verwirren. – Verhagen

+0

Ich verstehe, dass die CleanEclipse Eclipse der letzte Ausweg ist. In einigen Fällen gibt es keinen anderen Befehl, der bei Änderungen der Bibliotheksversion hilft. Der Abschnitt eclipse.project wird tatsächlich verwendet, wird jedoch nicht auf Teilprojekte angewendet. Sie können es in jede Gradle-Datei einfügen, dann wird die Natur wie erwartet hinzugefügt. – ATrubka

1

Ich denke, Sie müssen groß zu Ihrer Systemumgebung setzen. Schritte -

  • Installieren Sie Gradle von Gradle Website.
  • Gehe zu Eclipse-Einstellungen Home-Pfad in Großbuchstaben EnIDE wie "C: \ Gradle-2.3"
    oder was auch immer Verzeichnis, das Sie installiert haben.
  • Achten Sie auch darauf, einen Pfad zu Ihrer Systemumgebungsvariablen hinzuzufügen.
+0

Dies würde bewirken, dass Gradle-Versionen projektübergreifend gleich sind und die Möglichkeit einschränken, dass die IDE die vom Gradle-Wrapper definierten Standardwerte verwenden kann, nein? – nickb

+0

Wie auch immer, es wurde konfiguriert. Sieht aus wie das Problem ist, dass das Plugin glitchy ist. – ATrubka

3

Wenn es eine Race-Bedingung für die Testphase gibt, können Sie sie mithilfe des Qualifiers afterEvaluate eliminieren. Ich würde versuchen:

allprojects { 
    afterEvaluate { 
     eclipse.project { 
      natures 'org.springsource.ide.eclipse.gradle.core.nature' 
     } 
    } 
} 
+0

Während die Natur hinzugefügt wird, erkennt Eclipse die Projekte immer noch nicht als Gradle-Projekte. Am Ende muss ich die Gradle-Natur deaktivieren und dann wieder aktivieren und dann die Abhängigkeitsverwaltung für sie aktivieren. – nickb

+0

Hmm, ich denke, Eclipse erkennt nur während eines Projekts, und es gibt (momentan) keine direkte Möglichkeit, Eclipse vom Build-Tool aus zu repetieren. – RaGe

0

enter image description here

in den Einstellungen Gradle >>

include 'Device', 'Secugen', 'Morpho', 'NIDVSADesktop' 

hier NIDVSADesktop mein Stammprojekt ist. im Stammprojekt gradle

dependencies { 
    compile project(':Secugen') 
    compile project(':Morpho') 

} 

hier Secugen und Morpho ist meine 2 Teilprojekte

+0

Wie findet Morpho gradle build seine Eltern? Von dem, was ich weiß, sucht es nur im "Master" Geschwisterverzeichnis oder Elternverzeichnis. Was passiert, wenn Sie nur Morpho Build (nicht Root Build) ausführen? – ATrubka

Verwandte Themen