Come includere condizionalmente uno dei due file in un pacchetto .war con Buildr?

StackOverflow https://stackoverflow.com/questions/4449874

  •  10-10-2019
  •  | 
  •  

Domanda

Stiamo usando Buildr per confezionare un'applicazione come href="http://en.wikipedia.org/wiki/WAR_%28Sun_file_format%29" rel="nofollow"> file di . Per semplificare ulteriormente il processo di distribuzione automatica, vorrei selezionare condizionalmente uno di questi due file (dalla directory src/main/resources) ...

  • database-hsql.properties
  • database-postgres.properties

... e lo hanno incluso nella .war risultante con il nome database.properties. (Nello stesso luogo all'interno del WAR, cioè WEB-INF/classes/, in cui i file da src/main/resources ora finiscono.)

Un modo semplice per fare questo? Qualsiasi approccio sarebbe bene - per esempio parametrizzazione "pacchetto" (in qualche modo) oppure definendo due compiti / obiettivi differenti (non sono sicuro della terminologia), come "pacchetto-hsql" e "pacchetto-pgsql" -. fintanto che funziona ed è abbastanza semplice

bit rilevanti di buildfile:

load 'dependencies' 
require 'buildr/hibernate'

desc "..."
define "foo" do

  project.version = VERSION_NUMBER
  project.group = GROUP
  manifest["Implementation-Vendor"] = COPYRIGHT
  compile.with WICKET,GUAVA,GSON, ... [many more libs]
  test.with MOCKITO
  resources

  test.compile.with SERVLET,_('src/main/webapp'),_('src/main/resources')
  package(:war).with(:libs=> [WICKET,GUAVA,GSON, ... ])

end

Domanda bonus : come eseguire un comando arbitrario guscio (userei qualcosa che coinvolgono ad esempio >> o sed) in ciascuno dei due casi di apportare modifiche a un altro file di configurazione? (Mi piacerebbe anche voglia di "iniettare" alcune impostazioni db a applicationContext.xml da un altro file, questo sarebbe preferibile mantenere due copie di quel file in VCS con i contenuti per lo più identici.)

Scusate se questo è troppo di base; Sono un newbie totale con Buildr, e non so davvero Ruby. (E sì, non è una situazione ottimale per essere utilizzando uno strumento che nessun membro del team corrente è abile con ...) Se bisogno di qualcosa per chiarire, si prega di indicarlo!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top