从命令行构建Eclipse Java项目从命令行构建Eclipse Java项目(Build Ecl

2019-05-08 22:32发布

有没有办法编译通过命令行一个基于Eclipse的Java项目?

我想我的自动化建设(使用的FinalBuilder不是蚂蚁),我既不是Java和Eclipse的专家。 我也许可以弄清楚如何与直线java命令行选项做到这一点,但随后的Eclipse项目感觉就像很多无用功。

在没有办法通过命令行编译Eclipse项目的情况下,有没有办法从Eclipse中生成所需的Java命令行? 还是有一些文件,我可以捅四处寻找编译步骤是做幕后?


伙计们,我在寻找一个答案包括蚂蚁。 让我再次重申原来的问题.......有没有建​​立在命令行Eclipse项目的方法吗?

我不认为这是因为我可以做这样的事情的Visual Studio不合理的问题:

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

Answer 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与“春分启动”

https://wiki.eclipse.org/Equinox_Launcher

在Eclipse上火星(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参数指定你的工作空间的位置。

为春分发射器的版本号将取决于你有什么版本的Eclipse。



Answer 2:

为了完成安德烈的回答,一只蚂蚁的解决方案也能像描述的一个Emacs的,JDEE,蚂蚁,和Eclipse Java编译器 ,如:

      <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的核心插件。 类的名称是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在命令行参数 。 你必须报告,以达到同样的编译的结果包含在各种命令行选项。项目和的.classpath的所有信息。

这样,那么简单的答案是:“是的,Eclipse的那种呢。” ;)



Answer 3:

27年后,我也一样,我不舒服的IDE开发。 我尝试了这些建议(上) -也许只是没有按照一切权利-所以我做了网络搜索,发现我在'什么工作http://incise.org/android-development-on-the-命令line.html ”。

答案似乎是上述所有问题的答案的组合(请告诉我,如果我错了,如果是接受我的道歉)。

如上所述,日食/ ADT不创造必要的蚂蚁文件。 为了编译没有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 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.

3A)边注:为了查看来自设备使用日志:

 adb logcat

3B)的第二侧面说明:上面提到的链接还包括用于建立从该命令的整个项目的指令。

希望这将有助于这个问题。 我知道,我真的很高兴找到这个话题在这里任何东西



Answer 4:

正常之路探寻各地工作的其他方式:您可以创建您的构建基于Maven的或蚂蚁 ,然后使用集成为您选择的IDE,让你独立于它,这就是ESP。 重要的,当你尝试将新的团队成员加快速度或使用contious集成服务器为了自动生成。 我建议使用Maven并让它为你做繁重。 创建一个POM文件并生成通过MVN日食月食项目:月食。 HTH



Answer 5:

这个问题包含了一些有用的链接上无头版本,但它们正朝着建设插件大多为目标。 我不知道有多少可以用于纯Java的项目。



Answer 6:

只是想我的两分钱添加到此。 我想这样做是@Kieveli建议非的win32(下面重复),但它并没有为我工作(在与Eclipse的CentOS:露娜):

java -cp startup.jar -noSplash -data "D:\Source\MyProject\workspace" -application org.eclipse.jdt.apt.core.aptBuild

在CentOS上使用Eclipse(露娜)我特别设置这个工作:

$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

不明白为什么它显然做到了两次,但它似乎工作。



Answer 7:

嗨只是除了VonC意见。 我使用的欧洲法院编译器编译我的项目。 它被扔,一些类的都没有发现expcetion。 但是,该项目被罚款bulding的使用javac编译器。

所以刚才我说的类到类路径中(我们要通过作为参数),目前其工作优良... :)

Kulbir辛格



Answer 8:

简短的回答。 第Eclipse不有一个命令行开关,如Visual Studio构建一个项目。



文章来源: Build Eclipse Java Project from Command Line