tools - install c++ eclipse oxygen
¿Cómo instalar la lista de complementos de eclipse desde un script? (2)
Necesito una forma de configurar un entorno de codificación de eclipse altamente personalizado de forma totalmente desatendida desde un script en Linux. El entorno de Eclipse personalizado requiere la instalación de aproximadamente 10 complementos diferentes de varias fuentes (protobuf, pydev, cmakeed, openinterminal, egit, yaml, editor de página web, etc.). Hacer esto manualmente cada vez con la interfaz gráfica de usuario toma 20-30 minutos. Quiero automatizar la instalación de complementos en un script para que cualquier persona que ejecute linux pueda recrear mi entorno eclipse con un conjunto personalizado de complementos sin interacción humana. ¿Alguien tiene consejos sobre cómo hacer esto?
Aquí están los fragmentos de la línea de comandos para instalar algunos de mis complementos favoritos (probados en Eclipse Indigo 3.7) ... El truco consiste en averiguar el valor del parámetro "installIU" para el paquete ... La GUI de Eclipse lo mostrará si hace clic en el enlace "más" cuando se selecciona el paquete deseado en la ventana del instalador.
eclipse -nosplash -application org.eclipse.equinox.p2.director -repository http://download.eclipse.org/releases/indigo/,http://cmakeed.sourceforge.net/eclipse/ -installIU com.cthing.cmakeed.feature.feature.group
OpenInTerminal - Añadir opción en el menú contextual
eclipse -nosplash -application org.eclipse.equinox.p2.director -repository http://download.eclipse.org/releases/indigo/,http://eclipse-openinterminal.googlecode.com/svn/trunk/site/ -installIU OpenInTerminal.feature.group
protobuf-dt - editor de Google Protobuffer
eclipse -nosplash -application org.eclipse.equinox.p2.director -repository http://download.eclipse.org/releases/indigo/,http://download.eclipse.org/modeling/tmf/xtext/updates/composite/releases/,http://protobuf-dt.googlecode.com/git/update-site -installIU com.google.eclipse.protobuf.feature.group
eclipse -nosplash -application org.eclipse.equinox.p2.director -repository http://download.eclipse.org/releases/indigo/,http://dadacoalition.org/yedit -installIU org.dadacoalition.yedit.feature.group
eclipse -nosplash -application org.eclipse.equinox.p2.director -repository http://download.eclipse.org/releases/indigo/,http://download.eclipse.org/technology/dltk/updates/,https://sourceforge.net/projects/shelled/files/shelled/update/ -installIU net.sourceforge.shelled.feature.group
Editor de pagina web
eclipse -nosplash -application org.eclipse.equinox.p2.director -repository http://download.eclipse.org/releases/indigo/ -installIU org.eclipse.jst.webpageeditor.feature.feature.group
Pydev
Pydev es complicado porque requiere instalar primero un certificado ... Aquí hay un script que automatiza ese paso:
#!/usr/bin/python
# Add PyDev''s certificate to Java''s key and certificate database
# Certificate file here: http://pydev.org/pydev_certificate.cer
import os, sys, pexpect, urllib2
def main():
# NOTE: You may have to update the path to your system''s cacerts file
certs_file = ''/usr/lib/jvm/default-java/jre/lib/security/cacerts''
pydev_certs_url = ''http://pydev.org/pydev_certificate.cer''
print "Adding pydev_certificate.cer to %s" % (certs_file)
pydev_cert = open(''pydev_certificate.cer'', ''w'')
pydev_cert.write(urllib2.urlopen(pydev_certs_url).read())
pydev_cert.close()
cmd = "keytool -import -file ./pydev_certificate.cer -keystore %s" % (certs_file)
child = pexpect.spawn(cmd)
child.expect("Enter keystore password:")
child.sendline("changeit")
if child.expect(["Trust this certificate?", "already exists"]) == 0:
child.sendline("yes")
try:
child.interact()
except OSError:
pass
print "done"
if __name__ == "__main__":
main()
Entonces puedes correr:
eclipse -nosplash -application org.eclipse.equinox.p2.director -repository http://download.eclipse.org/releases/indigo/,http://pydev.org/updates/ -installIU org.python.pydev.feature.feature.group
Puede usar la aplicación p2 director para instalar las funciones de Eclipse con un script. Aquí hay algunos links more que pueden ayudar.