Ich habe ein Kind-Java-Projekt, das Groovy-Dateien in Classpath mit Eclipse hinzugefügt hat. Übergeordnetes Java-Projekt löst einige Funktionen in child aus, die die Groovy-Bibliothek zum Ausführen der Skripts verwenden. So import
funktioniert gut in Eclipse-Umgebung mit geöffneten Kind-Projekt, aber wenn ich es über die Befehlszeile ausführen oder wenn ich untergeordnete Projekt schließen, dann bekomme ich groovy Kompilierung Fehler bei Import-Anweisung. Wie kann ich das beheben? Ich möchte vermeiden, evaluate()
Methode zu verwenden.Importieren einer Groovy-Datei von einem Paket in eine andere Groovy-Datei in einem anderen Paket
Es folgt mein Meister groovy:
package strides_business_script
abstract class Business_Script extends Script {
//some stuff
}
Nach der andere groovy ist:
import static strides_business_script.StridesBusiness_Script.*;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
String Key = Part_Product_PartDetails
boolean containsData = checkIncomingMessage(Key)
if(containsData) {
def edgeKeyList = [PPR]
JSONArray partDetails = appendEdgeValueToMsg(edgeKeyList,Key,vertex,messageIterator);
//deleteMessages(Key);
JSONObject jsonObject = constructInfoWithPropertyJSON("NAME,PRODUCTTYPE,FGTYPE,UOM,ITEMCLASSIFICATIONBYMARKET");
jsonObject.put("PARTS",partDetails);
send(Product_AggPO_ProductDetails,convertJSONToString(jsonObject));
}
Edit: Mein Meister Skript Business_Script.groovy
in scripts/strides_business_script/
Ordner befindet. Alle anderen Skripte sind in scripts/StridesComputationScripts/
Ordner und sie importieren die Business_Script.groovy
. Ich betreibe die Anwendung mit Remote-Debugging wie folgt aktiviert:
java -cp "./lib/*:./scripts/strides_business_script/Business_Script.groovy" -Xdebug -Xrunjdwp:transport=dt_socket,address=6969,server=y -Dhibernate.cfg.xml.path=./conf/hibernate.cfg.xml -Dlog4j.configuration=file:./conf/log4j.properties com.biglabs.dataExtractor.dataDump.DataDumpDriver 7
und hier versuche ich, alle Rechen Skripte zu analysieren.
for (String scriptName : files) {
Script script = groovyShell.parse(new File(
SCRIPT_PLACED_AT + Constants.SLASH
+ SCRIPT_FILE_FOLDER + Constants.SLASH
+ scriptName));
scriptMping.put(scriptName, script);
}
Es wirft folgende Ausnahme bei der Verwendung von groovy Shell-Analyse:
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
/home/manoj/strides/release/strides/scripts/StridesComputationScripts/PRODUCT-script.groovy: 2: unable to resolve class strides_business_script.StridesBusiness_Script
@ line 2, column 1.
import static strides_business_script.Business_Script.*;
^
/home/manoj/strides/release/strides/scripts/StridesComputationScripts/PRODUCT-script.groovy: 2: unable to resolve class strides_business_script.StridesBusiness_Script
@ line 2, column 1.
import static strides_business_script.Business_Script.*;
^
2 errors
Wie werden Sie bauen oder aus dem Befehl ausführen Linie? Benutzt du ein Werkzeug wie Maven oder Gradle? –
Build verwendet maven. Und ich starte es mit java -cp von der Kommandozeile. Versucht, den Speicherort der Groovy-Datei als Classpath anzugeben, hat aber nicht funktioniert. –
Ich habe keine Ahnung, wie man reproduziert, was Sie haben ... Könnten Sie Ihre Frage aktualisieren, so dass wir es ausprobieren können? –