通过maven执行eclipse application
- 前言
- 命令行下运行
- 通过maven tycho运行
前言
eclipse其实不只是一个桌面(GUI)程序,他还可以是一个命令行程序。如果你的产品或软件是基于eclipse开发的,并且他没有UI相关的功能,那么就可以考虑把这些功能封装为一个独立的application,这样就可以通过命令行,在无界面的情况下去运行
命令行下运行
以eclipse自带的org.eclipse.equinox.p2.director
为例,该application主要实现了操作p2仓库的相关功能,比如浏览给定仓库的内容,安装指定插件到指定的eclipse中等等。
–此处假设你已经安装了eclipse sdk或p2相关的插件
# 查看该app的帮助
./eclipse -nosplash -application org.eclipse.equinox.p2.director -help# 列出给定仓库的所有插件
./eclipse -nosplash -application org.eclipse.equinox.p2.director -repository https://download.eclipse.org/releases/2022-12 -list
-nosplash 表示不显示启动页
-application org.eclipse.equinox.p2.director 表示运行id为org.eclipse.equinox.p2.director的application
通过maven tycho运行
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.zhangsan.test</groupId><artifactId>product</artifactId><version>1.0.0-SNAPSHOT</version><packaging>pom</packaging><build><pluginManagement><plugins><plugin><groupId>org.eclipse.tycho.extras</groupId><artifactId>tycho-eclipserun-plugin</artifactId><version>3.6.0</version><executions><execution><id>test</id><phase>package</phase><goals><goal>eclipse-run</goal></goals><configuration><addDefaultDependencies>true</addDefaultDependencies><repositories><repository><layout>p2</layout><url>https://download.eclipse.org/releases/2021-12</url></repository></repositories><dependencies><dependency><artifactId>org.eclipse.platform</artifactId><type>eclipse-feature</type></dependency></dependencies><applicationsArgs><args>-nosplash</args><args>-application</args><args>org.eclipse.equinox.p2.director</args><args>-help</args></applicationsArgs></configuration></execution></executions></plugin></plugins></pluginManagement><plugins><plugin><groupId>org.eclipse.tycho</groupId><artifactId>tycho-p2-repository-plugin</artifactId><version>3.6.0</version><configuration><includeAllDependencies>true</includeAllDependencies><profileProperties><macosx-bundled>true</macosx-bundled></profileProperties></configuration></plugin></plugins></build>
</project>
然后执行 mvn clean verify