如何配置maven jar插件以排除配置文件上的属性
我的pom中有此配置如何配置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>
<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文件。