Domanda

I have this configuration in my pom

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <version>2.2</version>
    <configuration>
        <excludes>                      
            <exclude>**/logging/*</exclude>
            <exclude>**/config/*</exclude>
        </excludes>
    </configuration>
</plugin>

I use profiles to handle different behaviour from local environment to production environment. Is it possible not activate the exclusions when executing mvn install with local profile? I tried to set a blank properties on local environment like this but the plugin complains.

È stato utile?

Soluzione 3

The best workaround I found is to use an invalid value to filter on when executing on DEV environment.

<profiles>
    <profile>
        <id>env-local</id>
        <activation>
            <property>
                <name>env</name>
                <value>local</value>
            </property>
        </activation>
        <properties>
            <jndi.iban0>cont0Data</jndi.iban0>
            <config.file.path>classpath:config</config.file.path>
            <logging.file.path>classpath:logging</logging.file.path>
            <exclude.logging>none</exclude.logging>
            <exclude.config>none</exclude.config>
        </properties>
    </profile>
</profiles>

Altri suggerimenti

This is a workaround solution, maybe a better one exists. I think the easiest you could do is to let your DEV environment free from any config of the jar plugin. And then place your PROD config in a dedicated profile :

<profiles>                                                         
    <profile>                                                      
        <id>PROD</id>                                              
        <build>                                                    
            <plugins>                                              
                <plugin>                                           
                    <groupId>org.apache.maven.plugins</groupId>    
                    <artifactId>maven-jar-plugin</artifactId>      
                    <version>2.2</version>                         
                    <configuration>                                
                        <excludes>                                 
                            <exclude>**/logging/*</exclude>        
                            <exclude>**/config/*</exclude>         
                        </excludes>                                
                    </configuration>                               
                </plugin>                                          
            </plugins>                                             
        </build>                                                   
    </profile>                                                     
</profiles>  

When you need to build the production jar, launch :

mvn clean install -PPROD

Are the logging and config files resources for testing only? If yes, put them in ${basedir}/src/test/resources. They'll be on the classpath for your tests but will not end up in the final jar, and you won't need specific jar plugin config.

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