如何配置maven jar插件以排除配置文件上的属性

如何配置maven jar插件以排除配置文件上的属性,maven,maven-jar-plugin,Maven,Maven Jar Plugin,我的pom中有此配置 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.2</version> <configuration> <excludes>

我的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>

org.apache.maven.plugins
maven jar插件
2.2
**/伐木/*
**/配置/*
我使用配置文件处理从本地环境到生产环境的不同行为。 在使用本地配置文件执行mvn安装时,是否可能不激活排除? 我试图像这样在本地环境中设置一个空白属性
但是插件会抱怨。

这是一个解决方案,可能存在更好的解决方案。我认为您可以做的最简单的事情是让您的开发环境从jar插件的任何配置中解放出来。然后将产品配置放置在专用配置文件中:

<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>  

这是一个变通解决方案,可能存在一个更好的解决方案。我认为您可以做的最简单的事情是让您的开发环境从jar插件的任何配置中解放出来。然后将产品配置放置在专用配置文件中:

<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>  

日志和配置文件资源是否仅用于测试?如果是,请将它们放入
${basedir}/src/test/resources
中。它们将出现在测试的类路径上,但不会出现在最终的jar中,并且您不需要特定的jar插件配置。

日志和配置文件资源是否仅用于测试?如果是,请将它们放入
${basedir}/src/test/resources
中。它们将位于测试的类路径上,但不会在最终的jar中结束,并且您不需要特定的jar插件配置。

我发现的最佳解决方法是在开发环境中执行时使用无效值进行筛选

<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>

环境本地
环境
地方的
cont0Data
类路径:config
类路径:日志记录
没有一个
没有一个

我发现的最佳解决方法是在DEV环境中执行时使用无效值进行筛选

<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>

环境本地
环境
地方的
cont0Data
类路径:config
类路径:日志记录
没有一个
没有一个

Nope,它们是应用程序需要执行的。没错,但是文件是develope/system/production文件。不,它们是应用程序需要执行的。没错,但是文件是develope/system/production文件。