GovernIB / projectebase

Projecte Base - JBoss 7.2 EAP & Open JDK 11
4 stars 0 forks source link

Crear profile per build de producció #82

Closed antonireus closed 4 years ago

antonireus commented 4 years ago

Hi ha determinats comportaments prefixats dins els descriptors de web/JSF o JPA que poden variar en desenvolupament respecte de producció i que són fàcilment canviables a partir de Maven.

Per exemple, JSF té dins el web.xml del back la configuració:

<context-param>
    <param-name>javax.faces.PROJECT_STAGE</param-name>
    <param-value>Development</param-value>
</context-param>

que en producció caldria posar a Production ja que millora el rendiment.

Al persistence.xml per exemple hi ha el

<property name="hibernate.show_sql" value="true"/>

que en desenvolupament molt bé, però en producció sempre convé posar a false.

Ficant variables dins aquests xml, a partir de properties del maven, definint-les per defecte amb els valors de desenvolupament, i activant el filtratge dins els plugin maven corresponent, i afegint un profile, de per exemple "produccio", que es limiti a redefinir les properties amb els valors de producció, seria molt senzill activar un build de producció simplement cridant: "mvn -Pproduccio ...", que de forma transparent activi aquests valors.

antonireus commented 4 years ago

S'ha afegit al pom.xml arrel les següents propietats que es filtren dins els descriptors:

    <webXml.faces.projectStage>Development</webXml.faces.projectStage>
    <persistenceXml.hibernate.showSql>true</persistenceXml.hibernate.showSql>

I s'ha definit un profile -Pproduccio que bàsicament fixa aquests altres valors alternatius per producció:

    <profile>
        <!-- Profile per fixar valors de producció als descriptors -->
        <id>produccio</id>
        <properties>
            <webXml.faces.projectStage>Production</webXml.faces.projectStage>
            <persistenceXml.hibernate.showSql>false</persistenceXml.hibernate.showSql>
        </properties>
    </profile>