개미로 작성된 이클립스 설치 프로그램의 일부분입니다.
사용자 지정 업데이트 사이트의 모든 기능을 설치합니다. 코드는 '있는 그대로'이지만 필자는 필자가이 글을 쓸 때 이것을 안내해 줄 수있는 것이 분명했을 것입니다.
이 스크립트는 개미에 antcontrib 확장을 사용합니다. Antcontrib 작업에는 'ac :'네임 스페이스 접두사가 있습니다.
희망이 있습니다.
<property name="real.eclipse.home" location="${eclipse.home}/eclipse"/>
<property file="${real.eclipse.home}/configuration/config.ini" prefix="ECLIPSE_CONFIG"/>
<property name="eclipse-plugins.dir" location="${real.eclipse.home}/plugins"/>
<path id="newest.equinox.launcher-library.path.id">
<dirset dir="${eclipse-plugins.dir}">
<include name="org.eclipse.equinox.launcher.*"/>
</dirset>
</path>
<property name="equinox.launcher-library.full-path" refid="newest.equinox.launcher-library.path.id"/>
<basename property="equinox.launcher-library.dir" file="${equinox.launcher-library.full-path}"/>
<echo message="equinox.launcher-library.dir='${equinox.launcher-library.dir}'"/>
<path id="newest.equinox.launcher.path.id">
<fileset dir="${eclipse-plugins.dir}">
<include name="org.eclipse.equinox.launcher_*.jar"/>
</fileset>
</path>
<property name="equinox.launcher.jar" refid="newest.equinox.launcher.path.id"/>
<basename property="equinox.launcher.jar.basename" file="${equinox.launcher.jar}"/>
<echo message="equinox.launcher.jar='${equinox.launcher.jar}'"/>
<java jar="${equinox.launcher.jar}"
fork="true"
failonerror="true"
>
<arg value="-consolelog"/>
<arg value="-application"/>
<arg value="org.eclipse.equinox.p2.director"/>
<arg value="-repository"/>
<arg value="http://${repository.server}/custom-update-site"/>
<arg value="-list"/>
<redirector
logError="true"
outputproperty="features.list"
>
<outputfilterchain>
<linecontains>
<contains value="feature.group="/>
</linecontains>
<replaceregex pattern="(.*feature\.group)=.*$" replace="\1"/>
</outputfilterchain>
</redirector>
</java>
<ac:for list="${features.list}" delimiter="${line.separator}" trim="true" param="feature">
<sequential>
<ac:if>
<isset property="feature.comma.list"/>
<then>
<ac:var name="feature.comma.list" value="${feature.comma.list},@{feature}"/>
</then>
<else>
<property name="feature.comma.list" value="@{feature}"/>
</else>
</ac:if>
</sequential>
</ac:for>
<echo message="Found following features to install"/>
<echo message="${features.list}"/>
<java jar="${equinox.launcher.jar}"
fork="true"
failonerror="true"
>
<arg value="-consolelog"/>
<arg value="-application"/>
<arg value="org.eclipse.equinox.p2.director"/>
<arg value="-repository"/>
<arg value="http://${repository.server}/custom-update-site"/>
<arg value="-destination"/>
<arg file="${real.eclipse.home}"/>
<arg value="-installIU"/>
<arg value="${feature.comma.list}"/>
<arg value="-profile"/>
<arg value="${ECLIPSE_CONFIG.eclipse.p2.profile}"/>
</java>
P. 유용성과 복잡성 때문에 이클립스 P2는 분명히 가장 저평가 된 기능 중 하나입니다. 이클립스 설치 폴더에서
Apache Felix File Install을 사용하고 싶지만 Eclipse config.ini에 "felix.fileinstall.dir"구성을 어떻게 넣을 수 있습니까? 나는 felix.fileinstall.dir = .. \ plugins \을 성공하지 않고 시도했다 ... 어떻게이 시스템 속성을 설정 파일에 넣을 수 있습니까? –
시스템 속성에 대한 jvm 매개 변수와 함께 파일 설치를 사용 중입니다. 그것은 마치 --Dparemter = value .. 이제 작동 중입니다. –
felix.fileinstall.dir =./plugins를 사용해 보셨습니까? 런처 jar/binary를 통해 Equinox를 시작하면 작업 디렉토리는 구성/디렉토리의 부모가됩니다. 게다가, 잘 작동해야합니다. –