2012-01-11 11 views
5

Estoy compilando mi primer script NSIS y disfrutando de la curva de aprendizaje.Implementar WAR en la carpeta WebApps derecha

La aplicación tiene ya:

  • Comprueba si la máquina es de 64 bits, 32 bits, si aborta.
  • Busca un JRE e instala uno si no se encuentra.
  • Instala Apache Tomcat 7 utilizando un instalador incluido.

    ExecWait ' "$ PLUGINSDIR \ apache-tomcat-7.0.19_x64.exe"'

A partir de este instalador independiente, el usuario puede elegir una ubicación diferente a la predeterminada para la instalación de Tomcat.

También es posible que otro Tomcat ya exista en la misma máquina, e instalan una segunda instancia con diferentes números de puerto.

He visto algunas otras muestras, pero instalan Tomcat al descomprimir la versión zip en una carpeta específica.
I piensa es un mejor enfoque para ejecutar el instalador TC7 exe. También hará la vida más fácil cuando necesitemos cambiarla por una versión más nueva.

Por lo tanto, mi Q es: ¿Cuál es el mejor enfoque para mantener el camino de donde acaban de instalar Tomcat, para que pueda tomarlo del instalador de Tomcat y usarlo en mi script NSIS para desplegar los archivos WAR ?

Esperaba encontrar una variable de sistema, pero no pude ver ninguna.

Respuesta

2

El Tomcat installer escribe a HKLM "SOFTWARE\Apache Software Foundation\Tomcat\@[email protected]\$TomcatServiceName" "InstallPath" pero ya que no se conoce el valor de $ TomcatServiceName creo que es posible que tenga que llamar EnumRegKey antes y después de la instalación de Tomcat ha ejecutado y comparar las dos listas de subclaves ...

+0

Entonces, después de que el instalador integrado haya hecho lo suyo, esta clave de registro existirá, y tendré que ingresar al registro para ver si hay> 1 entrada, y si es así, presentarla al usuario mediante el menú desplegable. ¿Sería capaz de proporcionar algunos fragmentos de código o pseudocódigo para ayudarme a entender cómo hacerlo? – Simon

+0

Si compara las dos listas, debería poder averiguar qué se agregó, si reutilizaban el nombre, tendrían que mostrar una lista – Anders

Cuestiones relacionadas