2016-03-24 7 views
1

Eigentlich in meinem pom.xml ich benutze Ant Plugin für Dateien verschieben.Verschieben von Dateien auf dem Profil in einen IST je

.... 
<profiles> 
    <profile> 
     <id>dev</id> 
     <activation> 
      <activeByDefault>true</activeByDefault> 
     </activation> 
     <properties> 
      <profileVersion>DEV</profileVersion> 
      <webXmlfolder>dev</webXmlfolder> 
      <mode>- Developpements</mode> 
      <filterFile>src/main/filters/filter-dev.properties</filterFile> 
     </properties> 
    </profile> 

    <profile> 
     <id>preprod</id> 
     <properties> 
      <profileVersion>PREPROD</profileVersion> 
      <webXmlfolder>preprod</webXmlfolder> 
      <mode>- Pre-Production</mode> 
      <filterFile>src/main/filters/filter-preprod.properties</filterFile> 
     </properties> 
    </profile> 

    <profile> 
     <id>prod</id> 
     <properties> 
      <profileVersion>PROD</profileVersion> 
      <webXmlfolder>prod</webXmlfolder> 
      <filterFile>src/main/filters/filter-prod.properties</filterFile> 
     </properties> 
    </profile> 
</profiles> 
.... 
    <plugin> 
     <artifactId>maven-antrun-plugin</artifactId> 
     <version>1.7</version> 
     <executions> 
      <execution> 
       <phase>package</phase> 
       <configuration> 
        <target> 
         <move 
          file="${project.build.directory}/classes/log4j.${webXmlfolder}.properties" 
          tofile="${project.build.directory}/classes/log4j.properties" 
          overwrite="true" /> 

         <move 
          file="${project.build.directory}/classes/hibernate.cfg.${webXmlfolder}.xml" 
          tofile="${project.build.directory}/classes/hibernate.cfg.xml" 
          overwrite="true" /> 

         <move 
          file="${project.build.directory}/classes/com/with/paper/properties/enumerations.${webXmlfolder}.properties" 
          tofile="${project.build.directory}/classes/com/with/paper/properties/enumerations.properties" 
          overwrite="true" /> 

         <move 
          file="${project.build.directory}/classes/com/with/paper/properties/MessageResources.${webXmlfolder}.properties" 
          tofile="${project.build.directory}/classes/com/with/paper/properties/MessageResources.properties" 
          overwrite="true" /> 

         <move 
          file="${project.build.directory}/classes/com/with/paper/properties/Parametres.${webXmlfolder}.properties" 
          tofile="${project.build.directory}/classes/com/with/paper/properties/Parametres.properties" 
          overwrite="true" /> 

         <delete> 
          <fileset dir="${project.build.directory}/classes/" 
           includes="**/hibernate.cfg.*.xml" /> 
          <fileset dir="${project.build.directory}/classes/" 
           includes="**/log4j.*.properties" /> 
          <fileset 
           dir="${project.build.directory}/classes/com/with/paper/properties/" 
           includes="**/enumerations.*.properties" /> 
          <fileset 
           dir="${project.build.directory}/classes/com/with/paper/properties/" 
           includes="**/MessageResources.*.properties" /> 
          <fileset 
           dir="${project.build.directory}/classes/com/with/paper/properties/" 
           includes="**/Parametres.*.properties" /> 
         </delete> 
        </target> 
       </configuration> 
       <goals> 
        <goal>run</goal> 
       </goals> 
      </execution> 
     </executions> 
    </plugin> 

Es ist möglich, noch etwas zu verwenden? maven-resources-plugin kann damit umgehen?

log4j.prepro:

# Set root category priority to INFO and its only appender to CONSOLE. 
#log4j.rootCategory=INFO, CONSOLE 

log4j.logger.org.apache=ERROR, CONSOLE 

# Start of user messages definitions 

log4j.logger.org.hibernate=ERROR, LOGFILE 
log4j.logger.com.with=INFO, LOGFILE 
log4j.logger.org.eclipse.birt=ERROR, LOGFILE 
log4j.logger.PAPERLOG=INFO, PAPERLOG 
log4j.logger.INITLOG=INFO, INITLOG 
log4j.logger.DECLARATIONSLOG=INFO, DECLARATIONSLOG 

# PAPERLOG is set to be a File appender using a PatternLayout. 
log4j.appender.PAPERLOG=org.apache.log4j.RollingFileAppender 
log4j.appender.PAPERLOG.MaxFileSize=10MB 
log4j.appender.PAPERLOG.File=/opt/tomcat5/apache-tomcat-5.5.26/logs/PAPERLOG.log 
log4j.appender.PAPERLOG.Append=true 
log4j.appender.PAPERLOG.Threshold=DEBUG 
log4j.appender.PAPERLOG.layout=org.apache.log4j.PatternLayout 
log4j.appender.PAPERLOG.layout.ConversionPattern=%-23d{dd/MM/yyyy HH:mm:ss,SSS} - %m%n 

# INITLOG is set to be a File appender using a PatternLayout. 
log4j.appender.INITLOG=org.apache.log4j.RollingFileAppender 
log4j.appender.INITLOG.MaxFileSize=10MB 
log4j.appender.INITLOG.File=/opt/tomcat5/apache-tomcat-5.5.26/logs/INITLOG.log 
log4j.appender.INITLOG.Append=true 
log4j.appender.INITLOG.Threshold=DEBUG 
log4j.appender.INITLOG.layout=org.apache.log4j.PatternLayout 
log4j.appender.INITLOG.layout.ConversionPattern=%-23d{dd/MM/yyyy HH:mm:ss,SSS} - %m%n 

# DECLARATIONSLOG is set to be a File appender using a PatternLayout. 
log4j.appender.DECLARATIONSLOG=org.apache.log4j.RollingFileAppender 
log4j.appender.DECLARATIONSLOG.MaxFileSize=10MB 
log4j.appender.DECLARATIONSLOG.File=/opt/tomcat5/apache-tomcat-5.5.26/logs/DECLARATIONSLOG.log 
log4j.appender.DECLARATIONSLOG.Append=true 
log4j.appender.DECLARATIONSLOG.Threshold=DEBUG 
log4j.appender.DECLARATIONSLOG.layout=org.apache.log4j.PatternLayout 
log4j.appender.DECLARATIONSLOG.layout.ConversionPattern=%-23d{dd/MM/yyyy HH:mm:ss,SSS} - %m%n 

# End of user messages definitions 

# CONSOLE is set to be a ConsoleAppender using a PatternLayout. 
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender 
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout 
log4j.appender.CONSOLE.layout.ConversionPattern=%-5p %l - %m%n 


# LOGFILE is set to be a File appender using a PatternLayout. 
log4j.appender.LOGFILE=org.apache.log4j.RollingFileAppender 
log4j.appender.LOGFILE.MaxFileSize=2MB 
log4j.appender.LOGFILE.File=/opt/tomcat5/apache-tomcat-5.5.26/logs/paper.log 
log4j.appender.LOGFILE.Append=true 
log4j.appender.LOGFILE.Threshold=DEBUG 
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout 
log4j.appender.LOGFILE.layout.ConversionPattern=%-23d{dd/MM/yyyy HH:mm:ss,SSS} - [%t] %-5p %c %x - %m%n 

log4j.prod:

# Set root category priority to INFO and its only appender to CONSOLE. 
#log4j.rootCategory=INFO, CONSOLE 

log4j.logger.org.apache=ERROR, CONSOLE 

# Start of user messages definitions 

log4j.logger.org.hibernate=ERROR, LOGFILE 
log4j.logger.com.with=WARN, LOGFILE 
log4j.logger.org.eclipse.birt=ERROR, LOGFILE 
log4j.logger.PAPERLOG=INFO, PAPERLOG 
log4j.logger.INITLOG=INFO, INITLOG 
log4j.logger.DECLARATIONSLOG=INFO, DECLARATIONSLOG 

# PAPERLOG is set to be a File appender using a PatternLayout. 
log4j.appender.PAPERLOG=org.apache.log4j.RollingFileAppender 
log4j.appender.PAPERLOG.MaxFileSize=10MB 
log4j.appender.PAPERLOG.File=/opt/tomcat5/apache-tomcat-5.5.26/logs/PAPERLOG.log 
log4j.appender.PAPERLOG.Append=true 
log4j.appender.PAPERLOG.Threshold=DEBUG 
log4j.appender.PAPERLOG.layout=org.apache.log4j.PatternLayout 
log4j.appender.PAPERLOG.layout.ConversionPattern=%-23d{dd/MM/yyyy HH:mm:ss,SSS} - %m%n 

# INITLOG is set to be a File appender using a PatternLayout. 
log4j.appender.INITLOG=org.apache.log4j.RollingFileAppender 
log4j.appender.INITLOG.MaxFileSize=10MB 
log4j.appender.INITLOG.File=/opt/tomcat5/apache-tomcat-5.5.26/logs/INITLOG.log 
log4j.appender.INITLOG.Append=true 
log4j.appender.INITLOG.Threshold=DEBUG 
log4j.appender.INITLOG.layout=org.apache.log4j.PatternLayout 
log4j.appender.INITLOG.layout.ConversionPattern=%-23d{dd/MM/yyyy HH:mm:ss,SSS} - %m%n 

# DECLARATIONSLOG is set to be a File appender using a PatternLayout. 
log4j.appender.DECLARATIONSLOG=org.apache.log4j.RollingFileAppender 
log4j.appender.DECLARATIONSLOG.MaxFileSize=10MB 
log4j.appender.DECLARATIONSLOG.File=/opt/tomcat5/apache-tomcat-5.5.26/logs/DECLARATIONSLOG.log 
log4j.appender.DECLARATIONSLOG.Append=true 
log4j.appender.DECLARATIONSLOG.Threshold=DEBUG 
log4j.appender.DECLARATIONSLOG.layout=org.apache.log4j.PatternLayout 
log4j.appender.DECLARATIONSLOG.layout.ConversionPattern=%-23d{dd/MM/yyyy HH:mm:ss,SSS} - %m%n 

# End of user messages definitions 

# CONSOLE is set to be a ConsoleAppender using a PatternLayout. 
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender 
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout 
log4j.appender.CONSOLE.layout.ConversionPattern=%-5p %l - %m%n 


# LOGFILE is set to be a File appender using a PatternLayout. 
log4j.appender.LOGFILE=org.apache.log4j.RollingFileAppender 
log4j.appender.LOGFILE.MaxFileSize=2MB 
log4j.appender.LOGFILE.File=/opt/tomcat5/apache-tomcat-5.5.26/logs/paper.log 
log4j.appender.LOGFILE.Append=true 
log4j.appender.LOGFILE.Threshold=DEBUG 
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout 
log4j.appender.LOGFILE.layout.ConversionPattern=%-23d{dd/MM/yyyy HH:mm:ss,SSS} - [%t] %-5p %c %x - %m%n 

Der Unterschied ist es nur in dieser Linie log4j.logger.com.with=[...]

MessageResources.properties:

numero.version=Développement 
[email protected]@[email protected]@ développement 
[email protected]@[email protected]@ pré-production 
[email protected]@[email protected]@ 
version=Version 

pom.xml:

   <resource> 
        <directory>${configFolder}</directory> 
        <includes> 
         <include>enumerations.properties</include> 
         <include>MessageResources.properties</include> 
         <include>Parametres.properties</include> 
        </includes> 
        <filtering>true</filtering> 
        <targetPath>/WEB-INF/classes/com/paper/with/properties/</targetPath> 
       </resource> 

Antwort

1

In diesem Fall Sie eine WAR-Aufbau und wollen Ressourcen hinzuzufügen, die auf die abhängigen aktuelles Profil. Beachten Sie, wie ich Ihr Problem formuliert: Sie wollen nicht bewegen und Dateien zu löschen, um mit maven-antrun-plugin. Dies ist ein XY problem.

Ich würde Sie 3 Ordner vorschlagen erstellen:

  • src/main/config/dev/
  • src/main/config/preprod/
  • src/main/config/prod/

Jeder dieser Ordner enthält die log4j.properties, hibernate.cfg.xml, enumerations.properties, MessageResources.properties und Parametres.properties zu benutze für th ist Umwelt.

Dann wird jeder Profilabschnitt definiert die richtigen Konfigurationsordner zu verwenden und die maven-war-plugin fügt korrekt die Dateien in diesem Ordner als Ressourcen. Sie müssen auch die Filterung für diese Ressourcen aktivieren.

<profile> 
    <id>[..]</id> 
    <!-- rest of configuration unchanged --> 
    <properties> 
     <configFolder>src/main/config/[...]</configFolder> 
    </properties> 
</profile> 


<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-war-plugin</artifactId> 
    <version>2.6</version> 
    <configuration> 
    <filters> 
     <filter>src/main/filters/filter.properties</filter> 
     <filter>${filterFile}</filter> 
    </filters> 
    <webResources> 
     <resource> 
     <directory>${configFolder}</directory> 
     <includes> 
      <include>log4j.properties</include> 
      <include>hibernate.cfg.xml</include> 
     </includes> 
     <targetPath>WEB-INF/classes</targetPath> 
     </resource> 
     <resource> 
     <directory>${configFolder}</directory> 
     <includes> 
      <include>enumerations.properties</include> 
      <include>MessageResources.properties</include> 
      <include>Parametres.properties</include> 
     </includes> 
     <targetPath>WEB-INF/classes/com/with/paper/properties</targetPath> 
     <filtering>true</filtering> 
     </resource> 
    </webResources> 
    </configuration> 
</plugin> 

Und haben Sie Ihre Dateien:

numero.version=Développement 
numero.version.livraison.dev=${majorVersion}.${minorVersion} développement 
numero.version.livraison.preprod=${majorVersion}.${minorVersion} pré-production 
numero.version.livraison.prod=${majorVersion}.${minorVersion} 
version=Version 
+0

Ich habe ' wahr hinzufügen' 'für Message.Eigenschaften 'um jedes Vorkommen von' $ {majorVersion} ',' $ {minorVersion} 'zu ersetzen, aber nichts ist modify – Mercer

+0

@Mercer Ja, müssen Sie die' 'wie ich [hier] (http: // stackoverflow .com/a/36199021/1743880). Ich habe das bearbeitet. – Tunaki

+0

aber wenn ich das mache, ist mein Vorkommen nicht ändern – Mercer

0

Sie sollen the Assembly plugin from maven verwenden. Sie können eine Konfiguration pro Profil bereitstellen. Innerhalb jeder Baugruppenkonfiguration geben Sie den Namen und den Speicherort des Eingabe- und Ausgabeinhalts an. Eine Beispielkonfiguration kann here finden.

Verwandte Themen