Nesta postagem mostrar um tutorial básico de como criar um instalador usando a ferramenta Inno Setup. Essa ideia nasceu porque passei algum tempo desenvolvendo um sistema web que precisava ser instalado no computador de um cliente. Então, ao procurar algo compreensível sobre essa ferramenta tive algumas algumas dificuldades.
O resultado final é um instalador personalizado de sua aplicação como esse:
No desenvolvimento de softwares sabemos das limitações do desenvolvimento desktop e da flexibilidade do desenvolvimento web. Assim, recentemente aceitei o desenvolvimento de uma aplicação. No final desta jornada gostaria de entregar o produto, no entanto não queria instalar as ferramentas separadamente, mas criar um instalador que empacotasse o serviço.
Antes de qualquer coisa temos que ter uma aplicação web para “empacotar”. Se você usa o PHP, por exemplo, sua vida pode ser mais fácil. Mas no meu caso estou tentando empacotar uma aplicação Java web. Então segue alguns detalhes das tecnologias que eu usei:
1 – Em primeiro lugar você deverá fazer download das ferramentas Inno Setup, Tomcat, Postgres. Lembrando que você irá precisar da versão que faz a instalação do banco de dados e não faz nenhuma configuração perguntando coisas para o usuário.
2 – Utilizando o inno script studio você poderá utilizar o wizard para iniciar a construção do seu setup. Baixe e instale o software para que você possa criar seu instalador personalizado.
3 – Antes de continuar você deverá gerar um arquivo .war da sua aplicação usando o eclipse ou o netbeans. Os arquivos .war são gerados para empacotar uma aplicação Java contendo todas as dependências necessárias para a aplicação ser executada. Ele é muito parecido com um arquivo JAR, porém, a única diferença é que ele não pode ser executado, esse arquivo precisa de um servidor web para ser executado.
No Netbeans esse arquivo é gerado dentro da pasta do projeto na subpasta chamada “dist”. Se você acessou o seu projeto e essa pasta não existe, você pode tentar usar o atalho Shift + F11 para construi-la. Mas lembre-se cada IDE de programação funciona de forma diferente, tente consultar como gerar esse arquivo usando cada uma delas.
Uma das principais desvantagens de usar o Inno setup é que ele possui alguns scripts bem pouco intuitivos. Essa linguagem é de difícil leitura e não tem muitas semelhanças com linguagens de programação tradicionais.
Visando facilitar a sua vida, eu desenvolvi um script meio “pré-cozido” que você pode usar. Lembre-se que antes de executá-lo você deve preencher esse script com as informações corretas, como: nome da aplicação, publicador, url, caminho para os arquivos, etc.
#define MyAppName "nomeDaSuaAplicação"
#define MyAppVersion "1"
#define MyAppPublisher "Nome do publicador"
#define MyAppURL "https://www.computersciencemaster.com.br/"
[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{093C2115-C813-4E28-AC46-1489A24A2508}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}{#MyAppName}
DefaultGroupName={#MyAppName}
AllowNoIcons=yes
OutputBaseFilename=setup
SetupIconFile=E:ProjetosJusHelpInstaladorjusHelpIcon.ico
Password=dx262524
Encryption=yes
Compression=lzma
SolidCompression=yes
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
Name: "portuguese"; MessagesFile: "compiler:LanguagesPortuguese.isl"
[Files]
Source: "E:Projetospostgresql-9.6.3-3-windows-x64.exe"; DestDir:{tmp};
Source: "E:ProjetoscreateDatabase.bat"; DestDir: "{tmp}"; DestName: "createDatabase.bat";
Source: "E:Projetosapache_tomcat_8*"; DestDir: "{app}tomcat"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "E:Projetosstart.bat"; DestDir: "{app}";
[Run]
Filename: "{tmp}postgresql-9.6.3-3-windows-x64.exe"; Flags: runminimized; StatusMsg: Instalando PostgreSQL; Parameters: --mode unattended --unattendedmodeui minimal --superpassword ColoqueSuaSenhaDoBancoAqui --prefix C:postgrespostgres --datadir C:postgresdata
;--create_shortcuts 0 (Adicione para não criar atalhos no postgre)
Filename: "{tmp}createDatabase.bat"; Parameters: """{pf32}"" ""{pf32}"""; StatusMsg: Atualizando o banco de dados;
Filename: "{app}tomcatbinservice.bat"; Parameters: "install seuApp"; StatusMsg: Instalando o serviço do Tomcat;
Filename: "{app}start.bat"; Parameters: """{pf32}"" ""{pf32}""" ; StatusMsg: Iniciando o serviço;
[UninstallRun]
Filename: "{app}tomcatbinservice.bat"; Parameters: "uninstall seuApp"
Os arquivos .bat que estão presentes no instalador do código acima, fazem a configuração do banco de dados e também do serviço do tomcat. Apesar do usuário não ter nenhum acesso a esses arquivos, você pode configurar detalhes da base de dados como usuário, senha, nome da base etc.
Veja um exemplo:
createDatabase.bat
Esse arquivo define uma senha e um usuário para o banco de dados e também cria um novo banco de dados no Postgres.
@Echo off
set PGUSER=postgres
set PGPASSWORD=suaSenha
c:
cd
cd C:postgrespostgresbin
@echo "Aguarde enquanto o banco de dados é atualizado..."
psql -U postgres -c "create database nomeDaBase"
start.bat
Esse arquivo simplesmente faz o início da aplicação web, assim você pode acessar esse serviço pelo seu navegador.
net stop seuApp
net start seuApp
start "" "http://localhost:8080/SeuApp/"
E ai você conseguiu criar seu instalador?
Se você conseguiu, deixe nos comentários. Se você quiser customizar esse código, fique a vontade. Não esqueça de marcar esse post aqui que vamos ficar felizes em mostrar novas soluções que partiram desse post!
Esse post foi modificado em 8 de abril de 2021 17:25
This website uses cookies.
Ver comentários
Estou buscando isso, queria criar um setup da minha aplicação que usa JSF e postgres, com esse passo a passo consigo criar?
e quanto ao Java (instalador)?