Hi,
ich bin mit Gradle erst seit einigen Wochen am arbeiten und bis jetzt hab ich alles so hinbekommen, wie ich wollte. Allerdings hab ich einen "Trick" benutzt, um eine lokale JAR ins Projekt zu bekommen: Ich hab einfach im anderen Projekt eine JAR exportiert, und dann im aktuellen Projekt die JAR unter libs abgelegt und im build.gradle dann folgendes hinzugefügt:
Das hat für den Anfang funktioniert, doch jetzt möchte ich, daß Gradle weiß, daß ich die JAR des Projektes benutzen will und wenn ich die JAR aktualisiere, dann soll die Aktualisierung natürlich in mein abhängiges Projekt übernommen werden.
Ich hab folgendes beim googeln gefunden:
Dafür habe ich jetzt 2 Mini-Projekte angelegt, um das zu testen, aber da klappt das mit der Abhängigkeit NICHT.
MyGradleLibrary hat eine Klasse:
und build.gradle
Das läßt sich (erwartungsgemäß) ohne Probleme bauen.
MyGradleProgram hat 2 Klassen, eine simple Datenklasse und eine Start-Klasse mit der main()-Methode:
Das build.gradle sieht im Moment so aus:
So funktioniert es, allerdings liegt die JAR der Library im lib-Verzeichnis von Program. Wenn ich dann compile files rausnehme und stattdessen compile project(':MyGradleLibrary') benutze, dann bekomm ich die Meldung:
Gradle meckert wegen dem Pfad, ich weiß aber nicht, wie ich den Pfad angeben kann oder wo. Wenn ich ein neues Eclipse-Gradle-Projekt anlege und als Sample-Projekt multi-flat wähle, dann steht im build.gradle auch nur compile project('
rojectname'). Ich verstehe das nicht, warum es dort funktioniert ohne Pfadangabe.
Kann mir jemand einen Tip geben? ???:L
ich bin mit Gradle erst seit einigen Wochen am arbeiten und bis jetzt hab ich alles so hinbekommen, wie ich wollte. Allerdings hab ich einen "Trick" benutzt, um eine lokale JAR ins Projekt zu bekommen: Ich hab einfach im anderen Projekt eine JAR exportiert, und dann im aktuellen Projekt die JAR unter libs abgelegt und im build.gradle dann folgendes hinzugefügt:
Code:
dependencies {
// lokales JAR-File
compile files ('lib/customcontrol.jar')
}
Das hat für den Anfang funktioniert, doch jetzt möchte ich, daß Gradle weiß, daß ich die JAR des Projektes benutzen will und wenn ich die JAR aktualisiere, dann soll die Aktualisierung natürlich in mein abhängiges Projekt übernommen werden.
Ich hab folgendes beim googeln gefunden:
Code:
dependencies {
compile project(':AnderesProjekt')
}
Dafür habe ich jetzt 2 Mini-Projekte angelegt, um das zu testen, aber da klappt das mit der Abhängigkeit NICHT.
MyGradleLibrary hat eine Klasse:
Java:
package de.library;
public class TestMe {
private String testString;
public TestMe(String testString) {
this.testString = testString;
}
public String getTestString() {
return this.testString;
}
}
und build.gradle
Code:
apply plugin: 'java'
MyGradleProgram hat 2 Klassen, eine simple Datenklasse und eine Start-Klasse mit der main()-Methode:
Java:
package de.programm;
public class Person {
private String name;
private String vorname;
public Person() {
}
public Person(String vorname, String name) {
this.vorname = vorname;
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getVorname() {
return vorname;
}
public void setVorname(String vorname) {
this.vorname = vorname;
}
@Override
public String toString() {
return this.vorname + " " + this.name;
}
}
Java:
package de.programm;
import de.library.TestMe;
public class Start {
public static void main(String[] args) {
System.out.println("Starte ...");
Person p = new Person("Tom", "Cruise");
System.out.println(p);
TestMe testMe = new TestMe("test1234");
System.out.println(testMe.getTestString());
}
}
Das build.gradle sieht im Moment so aus:
Code:
apply plugin: 'java'
apply plugin: 'eclipse'
repositories {
mavenCentral()
}
dependencies {
//compile project(':MyGradleLibrary')
// local files
compile files ('lib/MyGradleLibrary-1.0.jar')
}
jar {
// Name der Jar-Datei
baseName='MyGradleProgram'
version='1.0'
from configurations.compile.collect { zipTree it }
manifest.attributes 'Main-Class' : 'de.programm.Start'
}
So funktioniert es, allerdings liegt die JAR der Library im lib-Verzeichnis von Program. Wenn ich dann compile files rausnehme und stattdessen compile project(':MyGradleLibrary') benutze, dann bekomm ich die Meldung:
Code:
FAILURE: Build failed with an exception.
* Where:
Build file 'D:\WS_TEST\MyGradleProgram\build.gradle' line: 11
* What went wrong:
A problem occurred evaluating root project 'MyGradleProgram'.
> Project with path ':MyGradleLibrary' could not be found in root project 'MyGradleProgram'.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED
Gradle meckert wegen dem Pfad, ich weiß aber nicht, wie ich den Pfad angeben kann oder wo. Wenn ich ein neues Eclipse-Gradle-Projekt anlege und als Sample-Projekt multi-flat wähle, dann steht im build.gradle auch nur compile project('
Kann mir jemand einen Tip geben? ???:L