🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
通过filter过滤的形式进行打包,只出那些包下的资源需要被过滤,进行值替换 ## 1. 配置过滤 ``` <build> <finalName>manage</finalName> //项目打包名称 <plugins> //使用插件 <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>${java-version}</source> <target>${java-version}</target> <encoding>UTF-8</encoding> </configuration> </plugin> </plugins> <resources> //资源管理 <resource> <directory>src/main/java</directory> <filtering>false</filtering> //1.指出对java目录下的资源不进行过滤 <includes> <include>**/*.xml</include> //1.1 xml文件打包进去,没有值的过滤替换 <include>**/*.class</include> //1.2 java文件打包进去,没有值的过滤替换 </includes> </resource> <resource> <directory>src/main/resources</directory> //2.指出对resources目录下的资源不进行过滤 <filtering>false</filtering> <includes> <include>**/*.xml</include> //2.1 xml文件打包进去,没有值的过滤替换 <include>**/*.bpmn</include>//2.2 bpmn文件打包进去,没有值的过滤替换 <include>**/*.pdf</include>//2.3 pdf文件打包进去,没有值的过滤替换 <include>**/*.cab</include>//2.1 cab文件打包进去,没有值的过滤替换 <include>**/*.docx</include>//2.1 docx文件打包进去,没有值的过滤替换 <include>**/*.doc</include>//2.1 doc文件打包进去,没有值的过滤替换 </includes> </resource> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> //3 进行过滤 <includes> <include>**/*.properties</include> //打包进去,但是进行过滤值替换 <include>**/*.conf</include> //打包进去,但是进行过滤,替换 </includes> </resource> </resources> </build> ``` ![](https://box.kancloud.cn/6c54bdc09a90d1947e2dcf4b13d62a08_227x68.png) ![](https://box.kancloud.cn/734144c4323b8b31df99374b43bdacc5_272x29.png) 如使用prod打包,则使用metadb_config-prod.properties中的变量替换metadb_config.properties(注意文件名) ![](https://box.kancloud.cn/86f74e75da34d5536caee460ad00cc02_822x530.png) ![](https://box.kancloud.cn/9d43c14a2ef7b1bcced6be5170465214_1251x544.png) ### 1.1 ` <build>` 编译设置,一般有两种方式: 1.全局配置(project build) 针对整个项目的所有情况都有效,即是<project>标签的直接子元素。 2.配置(profile build) 针对不同的profile配置,即是<profile>的直接子元素。 3. 相关配置项 1)defaultGoal > 执行build任务时,如果没有指定目标,将使用的默认值。 2)directory > build目标文件的存放目录,默认在${basedir}/target目录 3)finalName > build目标文件的名称,默认情况为${artifactId}-${version} 4)filter > 定义*.properties文件,包含一个properties列表,该列表会应用到支持filter的resources中。 也就是说,定义在filter的文件中的name=value键值对,会在build时代替${name}值应用到resources中。 maven的默认filter文件夹为${basedir}/src/main/filters ## 2. 使用过滤,对上边的进行过滤 ``` <profiles> <profile> <id>dev</id> <build> <filters> <filter>src/main/resources/filters/metadb_config-dev.properties</filter> <filter>src/main/resources/filters/fdfs_client-dev.conf</filter> </filters> </build> <activation> <activeByDefault>true</activeByDefault> </activation> </profile> <profile> <id>qa</id> <build> <filters> <filter>src/main/resources/filters/metadb_config-qa.properties</filter> <filter>src/main/resources/filters/fdfs_client-qa.conf</filter> </filters> </build> </profile> <profile> <id>prod</id> <build> <filters> <filter>src/main/resources/filters/metadb_config-prod.properties</filter> <filter>src/main/resources/filters/fdfs_client-prod.conf</filter> </filters> </build> </profile> </profiles> ``` mvn clean install -P qa