我的项目使用IBM ODM 8.9.1,其中Rule Designer应用程序基于Eclipse Luna。香草应用程序上安装的唯一插件似乎是ODM插件,但是我需要安装m2e插件(v 1.5),以便rubberglove.bat
类路径变量存在于该版本的版本创建的任何工作空间中日食。这样做的原因是,将使用基于M2_REPO
的变量类型依赖项来导入每个项目中所有要导入到Rules Designer工作区中的库。
为了使该过程对项目的新开发人员无缝,并防止在无规则编译规则项目期间破坏构建,我想以无头模式使用p2 Director应用程序来安装IU如果尚未在目标Eclipse安装中安装m2e插件功能(通过args M2_REPO
)。这也是在ant构建XML内完成的,因此要使其完全执行我需要的操作有点棘手。
我已经找到了解决依赖关系所需的所有更新站点,并且已经通过Ant构建成功安装了插件。但是,在安装插件后创建的新Eclipse工作空间中,M2_REPO类路径变量仍然不存在。我希望看到这样的情况:M2_REPO shown in Java Build Path (Eclipse Luna),但是在安装p2 Director后,classpath变量不存在。
这是我的ant build XML的摘录,其中调用了p2 Director安装IU:
-installIU org.eclipse.m2e.feature.feature.group -repository http://download.eclipse.org/releases/luna/,http://download.eclipse.org/eclipse/updates/4.4/,http://download.eclipse.org/tools/orbit/downloads/drops/R20150124073747/repository/,http://download.eclipse.org/technology/m2e/releases/1.5/
这似乎已成功安装了所有依赖项的插件,但是同样,<path id="eclipse.launcher">
<fileset dir="${eclipse.location}/plugins">
<include name="org.eclipse.equinox.launcher_*.jar"/>
</fileset>
</path>
<!-- ...other unrelated elements here... -->
<java taskname="odm.install.m2e.plugin" classname="org.eclipse.core.launcher.Main" fork="true" failonerror="false"
resultproperty="m2eresultcode" errorproperty="m2eerrormsg" output="${headless.build.logs}/odm_install_m2e_plugins.log">
<classpath refid="eclipse.launcher" />
<arg line="-application org.eclipse.equinox.p2.director"/>
<arg line="-installIU org.eclipse.m2e.feature.feature.group"/>
<arg line="-repository http://download.eclipse.org/releases/luna/,http://download.eclipse.org/eclipse/updates/4.4/,http://download.eclipse.org/tools/orbit/downloads/drops/R20150124073747/repository/,http://download.eclipse.org/technology/m2e/releases/1.5/"/>
</java>
类路径变量在IDE中不可用,在m2e插件安装后创建新工作空间之后,其余的无头构建均不可用。
任何人都知道如何确保此classpath变量可用于使用该特定Eclipse实例创建的 任何 工作区吗? M2_REPO
方法有效,但仅当工作空间存在时才有效。我们使用的那个销毁并在单个Java应用程序执行中重新创建了每个构建,因此,如果没有三步过程无头创建一个新的空工作区并运行mvn -Declipse.workspace=... eclipse:configure-workspace
任务,那么该选项将无法正常工作然后执行构建步骤。如果那是我唯一的选择,我将如何使用Equinox启动器简单地创建一个空工作区?最好是,我希望m2e插件在所有工作空间中提供configure-workspace
类路径变量,但是事实证明,要使该行为正常工作是很困难的。
如果需要,我可以提供更多代码,请告诉我。谢谢!