Создайте проект Java Eclipse из командной строки

Есть ли способ скомпилировать Java-проект на основе Eclipse из командной строки?

Я пытаюсь автоматизировать мою сборку (используя FinalBuilder not ant), и я не являюсь экспертом Java или Eclipse. Вероятно, я могу выяснить, как это сделать с помощью прямых параметров командной строки java, но тогда проект Eclipse чувствует себя как много потраченных впустую усилий.

В случае, если нет возможности скомпилировать проект Eclipse через командную строку, существует ли способ создать требуемую командную строку java из Eclipse? Или есть какие-то файлы, которые я могу сделать, чтобы найти шаги компиляции, которые он делает за кулисами?


Ребята, я ищу ответ, который НЕ включает ant. Позвольте мне повторить исходный вопрос....... Есть ли способ создать проект Eclipse из командной строки?

Я не думаю, что это необоснованный вопрос, учитывая, что я могу сделать что-то подобное для визуальной студии:

devenv.exe /build "Debug|Any CPU" "C:\Projects\MyProject\source\MyProject.sln"

Ответ 1

Вы можете создать проект 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 на "equinox launcher"

https://wiki.eclipse.org/Equinox_Launcher

На Eclipse Mars (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 указывает местоположение вашей рабочей области.

Номер версии для пусковой установки для равноденствия будет зависеть от версии вашего затмения.

Ответ 2

Чтобы ответить André, решение 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 script пример здесь, который будет вызываться в командной строке с:

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

НО все, что связано с Ant, что не является тем, чем Кит после.

Для пакетной компиляции см. Компиляция Java-кода, особенно раздел Использование пакетный компилятор "

Класс пакетного компилятора находится в подключаемом модуле JDT Core. Имя класса - org.eclipse.jdt.compiler.batch.BatchCompiler. Он упакован в плагины /org.eclipse.jdt.core_3.4.0..jar. Начиная с версии 3.2, он также доступен как отдельная загрузка. Имя файла - ecj.jar.
Начиная с 3.3, эта банда также содержит поддержку jsr199 (API компилятора) и поддержку jsr269 (Обработка аннотаций). Чтобы использовать поддержку обработки аннотаций, требуется 1.6 VM.

Запуск пакетного компилятора Из командной строки вы получите

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".;)

Ответ 3

Через 27 лет мне тоже неудобно развиваться в среде IDE. Я пробовал эти предложения (выше) - и, вероятно, просто не следовал за всем правильным - поэтому я сделал веб-поиск и нашел, что сработало для меня в http://incise.org/android-development-on-the-command-line.html.

Ответ, казалось, был комбинацией всех ответов выше (пожалуйста, скажите мне, если я ошибаюсь, и примите мои извинения, если да).

Как упоминалось выше, eclipse/adt не создает необходимые файлы ant. Для компиляции без eclipse IDE (и без создания сценариев ant):

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".  Надеюсь, реквестер подразумевал, что он не хочет писать сценарии ant. Я говорю это  потому что следующим шагом является компиляция приложения с помощью ant

 ant target

    this confused me a little bit, because i thought they were talking about the
    android device, but they're not.  It 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.

3A) Примечание: для просмотра журнала с устройства используйте:

 adb logcat

3B) Второе примечание: ссылка, упомянутая выше, также содержит инструкции для построения всего проекта из команды.

Надеюсь, это поможет в этом вопросе. Я знаю, что был очень рад найти что-нибудь об этой теме.

Ответ 4

Обычный apporoach работает наоборот: вы создаете свою сборку на основе maven или ant, а затем используйте интеграцию для вашей среды IDE, чтобы вы были независимы от нее, что особенно важно. важно, когда вы пытаетесь привести новых членов команды к скорости или использовать надежный сервер интеграции для автоматизированных сборок. Я рекомендую использовать maven и позволить ему сделать тяжелый подъем для вас. Создайте файл pom и сгенерируйте проект eclipse через mvn eclipse: eclipse. НТН

Ответ 5

Этот вопрос содержит полезные ссылки на сборки безглавых, но они в основном направлены на создание плагинов. Я не уверен, насколько это можно применить к чистым Java-проектам.

Ответ 6

Просто хотел добавить мои два цента к этому. Я пробовал делать, как @Kieveli предложил для non 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

Не совсем уверен, почему он, очевидно, сделал это дважды, но, похоже, работает.

Ответ 7

Привет. Просто добавьте комментарии VonC. Я использую компилятор ecj для компиляции моего проекта. он бросал эксплойт, что некоторые из классов не найдены. Но проект был продуман с помощью компилятора javac.

Итак, просто я добавил классы в путь к классам (который мы должны передать как аргумент), а теперь его работа отлично...:)

Кульбир Сингх

Ответ 8

Короткий ответ. Нет. Eclipse не имеет ключа командной строки, такого как Visual Studio, для создания проекта.

Ответ 9

Что такое eclipse, как правило, это только файлы Java. Учитывая, что вы должны иметь возможность посмотреть путь к классам из файла .classpath и требуемые источники из файла .project и сделать javac на этом. Это должно быть довольно легко.