Сборка проекта Eclipse Java из командной строки
Есть ли способ компилировать Java-проект на основе Eclipse из командной строки?
Я пытаюсь автоматизировать мою сборку (используя FinalBuilder, а не муравья), и я не являюсь ни экспертом по Java, ни Eclipse. Я, вероятно, могу понять, как это сделать с помощью простых параметров командной строки Java, но тогда проект Eclipse выглядит как потраченные впустую усилия.
Если нет способа скомпилировать проект Eclipse через командную строку, есть ли способ сгенерировать требуемую командную строку Java из Eclipse? Или есть какие-то файлы, которые я могу найти, чтобы найти шаги компиляции, которые он делает за кулисами?
Ребята, я ищу ответ, который не включает муравья. Позвольте мне повторить первоначальный вопрос....... Есть ли способ построить проект Eclipse из командной строки?
Я не думаю, что это необоснованный вопрос, учитывая, что я могу сделать что-то подобное для визуальной студии:
devenv.exe /build "Debug|Any CPU" "C:\Projects\MyProject\source\MyProject.sln"
9 ответов
Вы можете построить проект eclipse через рабочую область из командной строки:
eclipsec.exe -noSplash -data "D:\Source\MyProject\workspace" -application org.eclipse.jdt.apt.core.aptBuild
Он использует jdt apt
Плагин для автоматического создания вашего рабочего пространства. Это также известно как "Безголовая сборка". Чертовски трудно понять. Если вы не используете Win32 EXE, вы можете попробовать это:
java -cp startup.jar -noSplash -data "D:\Source\MyProject\workspace" -application org.eclipse.jdt.apt.core.aptBuild
Обновить
Несколько лет назад затмение заменили startup.jar
с "пусковой установкой равноденствия"
https://wiki.eclipse.org/Equinox_Launcher
На "Затмении Марса" (MacOX):
java -jar /Applications/Eclipse.app/Contents/Eclipse/plugins/org.eclipse.equinox.launcher_1.3.100.v20150511-1540.jar -noSplash -data "workspace" -application org.eclipse.jdt.apt.core.aptBuild
-data
Параметр указывает местоположение вашего рабочего пространства.
Номер версии для пусковой установки равноденствия будет зависеть от того, какая у вас версия затмения.
Чтобы завершить ответ Андре, решение ant может быть таким же, как описано в Emacs, JDEE, Ant и компиляторе Java Eclipse, например:
<javac
srcdir="${src}"
destdir="${build.dir}/classes">
<compilerarg
compiler="org.eclipse.jdt.core.JDTCompilerAdapter"
line="-warn:+unused -Xemacs"/>
<classpath refid="compile.classpath" />
</javac>
Элемент compilerarg также позволяет передавать дополнительные аргументы командной строки компилятору eclipse.
Вы можете найти полный пример скрипта ant, который будет вызываться из командной строки с помощью:
java -cp C:/eclipse-SDK-3.4-win32/eclipse/plugins/org.eclipse.equinox.launcher_1.0.100.v20080509-1800.jar org.eclipse.core.launcher.Main -data "C:\Documents and Settings\Administrator\workspace" -application org.eclipse.ant.core.antRunner -buildfile build.xml -verbose
НО все, что связано с муравьем, а это не то, что нужно Китаю.
Для пакетной компиляции, пожалуйста, обратитесь к Компиляции кода Java, особенно в разделе "Использование пакетного компилятора"
Класс пакетного компилятора находится в плагине JDT Core. Имя класса - org.eclipse.jdt.compiler.batch.BatchCompiler. Он упакован в plugins/org.eclipse.jdt.core_3.4.0..jar. Начиная с версии 3.2 он также доступен для отдельной загрузки. Имя файла - ecj.jar.
Начиная с версии 3.3 этот jar-файл также содержит поддержку jsr199 (API-интерфейс компилятора) и поддержку jsr269 (обработка аннотаций). Для использования поддержки обработки аннотаций требуется виртуальная машина 1.6.
Запуск пакетного компилятора из командной строки даст
java -jar org.eclipse.jdt.core_3.4.0<qualifier>.jar -classpath rt.jar A.java
или же:
java -jar ecj.jar -classpath rt.jar A.java
Все параметры компиляции Java подробно описаны в этом разделе.
Отличие от функции компиляции командной строки Visual Studio заключается в том, что Eclipse, по-видимому, напрямую не читает свои.project и.classpath в аргументе командной строки. Вы должны сообщать всю информацию, содержащуюся в.project и.classpath в различных параметрах командной строки, чтобы достичь того же самого результата компиляции.
Итак, короткий ответ: "Да, Eclipse вроде как".;)
После 27 лет мне тоже неудобно развиваться в IDE. Я попробовал эти предложения (см. Выше) - и, вероятно, просто не следовал всем правилам - поэтому я выполнил поиск в Интернете и нашел то, что мне http://incise.org/android-development-on-the-command-line.html'.
Ответ, казалось, был комбинацией всех ответов выше (пожалуйста, скажите мне, если я неправ, и примите мои извинения, если так).
Как упоминалось выше, eclipse/adt не создает необходимые файлы ant. Чтобы скомпилировать без IDE затмения (и без создания сценариев муравья):
1) Создайте build.xml в вашем каталоге верхнего уровня:
android list targets (to get target id used below)
android update project --target target_id --name project_name --path top_level_directory
** my sample project had a target_id of 1 and a project name of 't1', and
I am building from the top level directory of project
my command line looks like android update project --target 1 --name t1 --path `pwd`
2) Далее я компилирую проект. Я был немного смущен просьбой не использовать "муравей". Надеюсь, запросчик имел в виду, что он не хотел писать никаких скриптов для муравьев. Я говорю это потому, что следующим шагом является компиляция приложения с использованием муравья
ant target
this confused me a little bit, because i thought they were talking about the
android device, but they're not. It's the mode (debug/release)
my command line looks like ant debug
3) Чтобы установить apk на устройство, мне пришлось снова использовать ant:
ant target install
** my command line looked like ant debug install
4) Для запуска проекта на моем телефоне с Android я использую adb.
adb shell 'am start -n your.project.name/.activity'
** Again there was some confusion as to what exactly I had to use for project
My command line looked like adb shell 'am start -n com.example.t1/.MainActivity'
I also found that if you type 'adb shell' you get put to a cli shell interface
where you can do just about anything from there.
3А) Примечание: для просмотра журнала с устройства используйте:
adb logcat
3B) Примечание второй стороны: ссылка, упомянутая выше, также содержит инструкции по сборке всего проекта из команды.
Надеюсь, это поможет с вопросом. Я знаю, что был действительно счастлив найти что-нибудь об этой теме здесь.
Обычный подход работает наоборот: вы создаете свою сборку на основе maven или ant, а затем используете интеграцию для своей IDE по своему выбору, чтобы вы не зависели от нее, а именно esp. Это важно, когда вы пытаетесь ускорить работу новых членов команды или использовать автоматизированный интеграционный сервер для автоматизированных сборок. Я рекомендую использовать Maven, и пусть он сделает тяжелую работу за вас. Создайте файл pom и сгенерируйте проект eclipse с помощью mvn eclipse:eclipse. НТН
Этот вопрос содержит несколько полезных ссылок на сборку без заголовка, но они в основном предназначены для создания плагинов. Я не уверен, сколько из этого может быть применено к проектам чистого Java.
Просто хотел добавить к этому два моих цента. Я попытался сделать так, как предложил @Kieveli для не win32 (повторяется ниже), но у меня это не сработало (на CentOS с Eclipse: Luna):
java -cp startup.jar -noSplash -data "D:\Source\MyProject\workspace" -application org.eclipse.jdt.apt.core.aptBuild
На моей конкретной установке CentOS с использованием Eclipse (Luna) это работало:
$ECLIPSE_HOME/eclipse -nosplash -application org.eclipse.jdt.apt.core.aptBuild startup.jar -data ~/workspace
Вывод должен выглядеть примерно так:
Building workspace
Building '/RemoteSystemsTempFiles'
Building '/test'
Invoking 'Java Builder' on '/test'.
Cleaning output folder for test
Build done
Building workspace
Building '/RemoteSystemsTempFiles'
Building '/test'
Invoking 'Java Builder' on '/test'.
Preparing to build test
Cleaning output folder for test
Copying resources to the output folder
Analyzing sources
Compiling test/src/com/company/test/tool
Build done
Не совсем уверен, почему он, по-видимому, сделал это дважды, но, похоже, работает.
Я хотел просто добавить этот комментарий к этому вопросу для всех, кто может столкнуться с этой проблемой в будущем.
Однажды я работал над проектом, и создание сложных и взаимосвязанных проектов JAVA из CMD (используя ECLIPSE) было моим единственным вариантом. Итак, все, что вам нужно, это:
Загрузите желаемую среду ECLIPSE IDE (протестировано с ECLIPSE OXYGEN, Eclipse IDE для корпоративных разработчиков Java и веб-разработчиков и Eclipse IDE для разработчиков Java, и она работает нормально)
Откройте свой проект в ECLIPSE и измените конфигурацию ECLIPSE на основе вашего проекта.
Закройте ECLIPSE и сохраните .metadata, созданные из вашего ECLIPSE (если ваше рабочее пространство будет обновлено в будущем)
Запустите этот скрипт в CMD:
"%ECLIPSE_IDE%\eclipsec.exe" -noSplash -data "YOUR_WORKSPACE" -application org.eclipse.jdt.apt.core.aptBuild
Итак, все, что я хотел сказать, это то, что я не мог построить с помощью вышеуказанных команд без .metadata в рабочей области. Убедитесь, что он существует там. Если вам нужно, сделайте копию .metadata и скопируйте и вставьте ее каждый раз, когда вы хотите выполнить команды.
Привет Просто дополнение к комментариям VonC. Я использую ecj-компилятор для компиляции моего проекта. это было исключение, что некоторые классы не найдены. Но проект был хорош с компилятором javac.
Так что я просто добавил классы в classpath(который мы должны передать в качестве аргумента), и теперь он работает нормально...:)
Кулбир Сингх
Короткий ответ. Нет. Eclipse не имеет переключателя командной строки, такого как Visual Studio, для создания проекта.