2009-05-07 10 views
24

Qualcuno sa come (facilmente) "rinominare" un'applicazione Grails esistente? Mi sto imbattendo in questo perché il mio provider PaaS non mi consente di eliminare un abbonamento ... Quindi voglio distribuire la mia applicazione con un nome diverso.Come rinominare un'applicazione Grails esistente

Certo, posso fare questo manualmente, ma penso che potrebbe essere un utile script 'top-level' (cioè "graal rinominare-app newappname")

suggerimenti manuali:

Quando ho fai un "grail create-app myappname" Riesco a vedere il myappname presente nei seguenti file (e nomi di file) ... Ovviamente questo viene fatto dallo script create-app, che sostituisce @ ... @ token nel modello. Immagino che una volta sostituiti, non è banale fare un rinominare.

./.project: <name>myappname</name> 
./application.properties:app.name=myappname 
./build.xml:<project xmlns:ivy="antlib:org.apache.ivy.ant" name="myappname" default="test"> 
./ivy.xml: <info organisation="org.example" module="myappname"/> 
./myappname-test.launch:<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="myappname"/> 
./myappname.launch:<listEntry value="/myappname"/> 
./myappname.launch:<listEntry value="<?xml version="1.0" encoding="UTF-8"?> <runtimeClasspathEntry containerPath="org.eclipse.jdt.launching.JRE_CONTAINER" javaProject="myappname" path="1" type="4"/> "/> 
./myappname.launch:<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="myappname"/> 
./myappname.launch:<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Dbase.dir="${project_loc:myappname}" -Dserver.port=8080 -Dgrails.env=development"/> 
./myappname.tmproj: <string>myappname.launch</string> 

E naturalmente ... il nome della directory di primo livello è "myappname"

Eventuali suggerimenti, o informazioni su iniziative in corso in questo settore sono i benvenuti

Greetz,

Johan

risposta

33

Ho dovuto fare questo, ho rinominato il mio progetto directory di primo livello con il nuovo nome e modificato il file application.properties. C'è una linea app.name = youroldappname che dovrebbe essere cambiata.

In realtà, non è nemmeno necessario rinominare la directory. Potresti avere un nome diverso per l'app web.

+1

ha funzionato come un fascino !!! –

+4

Forse sarà conveniente eseguire "grails clean" dopo la rinomina. –

0

Hmm, so che non sembra divertente, ma non dovrebbe essere difficile (solo noioso) rinominare la directory del progetto, quindi tutti i file con il nome del progetto in essi (puoi ignorare .tmproj a meno che non usi TextMate). Infine, una rapida ricerca di tutti i file per il vecchio nome del progetto da sostituire e dovresti averlo.

Oh! Innanzitutto, se utilizzi un IDE, ti consigliamo di rimuovere il progetto dall'IDE, quindi reimportarlo una volta completata la procedura di ridenominazione.

Per quanto ne so, nulla di specifico del progetto è memorizzato ovunque tranne la directory del progetto e sotto, quindi è un set molto limitato da cercare, e devi farlo solo una volta (spero).

Non molto elegante, lo so, ma la forza bruta ha i suoi usi.

0

Ho usato il metodo forza bruta e ha funzionato per me. Ci sono voluti 5-10 minuti per trovare tutti i file con il nome e sostituirlo con quello nuovo. In seguito anche Netbeans è andato bene. L'unica cosa che è cambiata era il numero di porta che dovevo cambiare di nuovo.

0

Basta rinominare le opere tranne quando si utilizzano plug-in. Saranno memorizzati nella cartella $USER_HOME/.grails/$GRAILS_VERSION/projects/OLDNAME.

Quindi dopo aver rinominato il tuo progetto hai "perso" i tuoi plugin. Non ho provato a rinominare la cartella del plugin, ma basta installare anche tutti i plugin (almeno con Google App Engine e gorm-jpa).

0

Se la modifica del nome dell'app Web non è sufficiente, è possibile provare in modo approssimativo: eseguire un backup in precedenza. (Nella cartella dell'area di lavoro)

zip -r oldname.zip oldname/ 

Poi, in Eclipse/ggts, utilizzare

progetto Disabilita, costruire automaticamente Cerca, File, Contenente il testo: "oldname", Cerca Fare clic destro sui risultati di ricerca, Sostituisci tutto, ... "nuovo nome"

Esce eclissi e rinomina tutte le cartelle nel nuovo nome del progetto. Su Unix/Mac eseguito

find . -name "oldname" 

e mv la manciata di risultati per riflettere correttamente i nuovi nomi.

Per me ha funzionato come un fascino, ma assicurati che il nome del tuo progetto non sia una parola chiave e ragionevolmente unico.