Привет всем
Я нашел XTend (http://xtend-lang.org), и это действительно здорово! Но я не вижу отдельного компилятора командной строки для этого языка. Кажется, он работает только под затмением. Я провел некоторое исследование и обнаружил, что некоторые люди говорят, что у него есть компилятор командной строки, но я не могу найти ссылку для скачивания.
Существует ли компилятор, автономный, или вам нужно eclipse для его использования?
С уважением
Компилятор командной строки для XTend
Ответы (2)
Это не задокументировано, но в базе кода Xtend действительно есть компилятор командной строки — тот же, что используется в Maven. подключаемый модуль (задокументированный на домашней странице Xtend).
Если подключаемый модуль Maven у вас не работает, вы можете загрузить автономную версию jar непосредственно из репозитория Maven по адресу http://build.eclipse.org/common/xtend/maven/org/eclipse/xtend/org.eclipse.xtend.standalone/2.3.1/ (для версии 2.3.1) и выполните org.eclipse.xtend.core.compiler.batch.Main из него.
Этот класс выполняет компилятор xtend, и может отображаться информация об использовании (также читаемая из исходный файл).
Вы можете использовать автономный компилятор xtend. В моем случае я скопировал следующие файлы .jar в папку с именем xtendc:
com.google.guava_21.0.0.v20170206-1425.jar
com.google.inject_3.0.0.v201312141243.jar
javax.inject_1.0.0.v20091030.jar
org.antlr.runtime_3.2.0.v201101311130.jar
org.apache.log4j_1.2.15.v201012070815.jar
org.eclipse.emf.common_2.15.0.v20180914-1817.jar
org.eclipse.emf.ecore.xmi_2.15.0.v20180706-1146.jar
org.eclipse.emf.ecore_2.16.0.v20181124-0637.jar
org.eclipse.equinox.common_3.10.200.v20181021-1645.jar
org.eclipse.jdt.core_3.16.0.v20181130-1748.jar
org.eclipse.xtend.core_2.16.0.v20181203-1347.jar
org.eclipse.xtend.lib.macro_2.16.0.v20181203-0507.jar
org.eclipse.xtext.common.types_2.16.0.v20181203-0528.jar
org.eclipse.xtext.util_2.16.0.v20181203-0514.jar
org.eclipse.xtext.xbase.lib_2.16.0.v20181203-0507.jar
org.eclipse.xtext.xbase_2.16.0.v20181203-0528.jar
org.eclipse.xtext_2.16.0.v20181203-0514.jar
org.objectweb.asm_7.0.0.v20181030-2244.jar
А затем в этой папке я выполнил основной класс CLI пакетного компилятора:
java -cp "*" org.eclipse.xtend.core.compiler.batch.Main -d <path-to-xtend-gen-folder> -useCurrentClassLoader <path-to-src-folder>
Использование CLI основного класса задокументировано следующим образом:
Usage: Main <options> <source directories>
where possible options include:
-d <directory> Specify where to place generated xtend files
-tp <path> Temp directory to hold generated stubs and classes
-cp <path> Specify where to find user class files
-encoding <encoding> Specify character encoding used by source files
-javaSourceVersion <version> Create Java Source compatible to this version. Can be: 1.5, 1.6, 1.7, 1.8, 9, 10
-noSuppressWarningsAnnotation Don't put @SuppressWarnings() into generated Java Code
-generateGeneratedAnnotation Put @Generated into generated Java Code
-includeDateInGeneratedAnnnotation If -generateGeneratedAnnotation is used, add the current date/time.
-generateAnnotationComment <string> If -generateGeneratedAnnotation is used, add a comment.
-useCurrentClassLoader Use current classloader as parent classloader
-writeTraceFiles Write Trace-Files
поэтому вам нужно будет передать туда свой путь к классам.