1

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

我使用配置文件来处理从本地环境到生产环境的不同行为。使用本地配置文件执行 mvn install 时是否可以不激活排除项?我试图像这样在本地环境中设置一个空白属性,但插件抱怨。

4

3 回答 3

1

这是一种解决方案,也许存在更好的解决方案。我认为您可以做的最简单的事情是让您的 DEV 环境不受 jar 插件的任何配置的影响。然后将您的 PROD 配置放在专用配置文件中:

<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 时,启动:

mvn clean install -PPROD
于 2012-09-07T12:19:26.060 回答
0

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

于 2012-09-07T13:21:43.130 回答
0

我发现的最佳解决方法是在 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>
于 2012-09-14T15:00:17.617 回答