maven-resources-maven war plugin 2.4-2.4.3.jar文件干什么用

Maven学习笔记(二)——常用插件配置详解 - 深蓝色的忧伤 - ITeye技术网站
博客分类:
先将我用到的自定义变量贴过来,防止插件中出现一些变量,大家不理解
&!-- 全局属性配置 --&
&properties&
&project.build.name&tools&/project.build.name&
&project.build.sourceEncoding&UTF-8&/project.build.sourceEncoding&
&/properties&
project.build.name: 用来定义war包名称
project.build.sourceEncoding: 用来定义资源文件的编码格式
下面开始讲解常用的maven插件配置
一、编译插件
&!-- 编译插件 --&
&groupId&org.apache.maven.plugins&/groupId&
&artifactId&maven-compiler-plugin&/artifactId&
&configuration&
&source&1.6&/source&
&target&1.6&/target&
&encoding&${project.build.sourceEncoding}&/encoding&
&/configuration&
source:源代码编译版本;
target:目标平台编译版本;
encoding:字符集编码。
二、设置资源文件的编码方式
&!-- 设置资源文件的编码方式 --&
&groupId&org.apache.maven.plugins&/groupId&
&artifactId&maven-resources-plugin&/artifactId&
&version&2.4.3&/version&
&executions&
&execution&
&phase&compile&/phase&
&/execution&
&/executions&
&configuration&
&encoding&${project.build.sourceEncoding}&/encoding&
&/configuration&
xml、properties文件都是资源文件,编码的时候遇到中文总要进行转码!用什么编码?UTF-8,那就记得强制&encoding&${project.build.sourceEncoding}&/encoding&
三、自动拷贝jar包到target目录
&!-- 依赖插件 --&
&groupId&org.apache.maven.plugins&/groupId&
&artifactId&maven-dependency-plugin&/artifactId&
&version&2.6&/version&
&executions&
&execution&
&id&copy-dependencies&/id&
&phase&compile&/phase&
&goal&copy-dependencies&/goal&
&configuration&
&!-- ${project.build.directory}为Maven内置变量,缺省为target --&
&outputDirectory&${project.build.directory}/lib&/outputDirectory&
&!-- 表示是否不包含间接依赖的包 --&
&excludeTransitive&false&/excludeTransitive&
&!-- 表示复制的jar文件去掉版本信息 --&
&stripVersion&true&/stripVersion&
&/configuration&
&/execution&
&/executions&
在部署war包时,需要将项目依赖的jar包,也打到war包中,因此就会用到上述插件
四、生成源代码jar包
&!-- 源代码打包插件 --&
&artifactId&maven-source-plugin&/artifactId&
&version&2.1&/version&
&configuration&
&!-- &finalName&${project.build.name}&/finalName& --&
&attach&true&/attach&
&encoding&${project.build.sourceEncoding}&/encoding&
&/configuration&
&executions&
&execution&
&phase&compile&/phase&
&goal&jar&/goal&
&/execution&
&/executions&
&/plugin&
该插件主要用于在打jar包时,把源代码也打成jar包
五、将项目打成jar包
&!-- jar包插件 --&
&groupId&org.apache.maven.plugins&/groupId&
&artifactId&maven-jar-plugin&/artifactId&
&version&2.4&/version&
&configuration&
&manifest&
&!-- 告知 maven-jar-plugin添加一个 Class-Path元素到 MANIFEST.MF文件,以及在Class-Path元素中包括所有依赖项 --&
&addClasspath&true&/addClasspath&
&!-- 所有的依赖项应该位于 lib文件夹 --&
&classpathPrefix&lib/&/classpathPrefix&
&!-- 当用户使用 lib命令执行JAR文件时,使用该元素定义将要执行的类名 --&
&mainClass&com.zhengtian.tools.service.phone.MobilePhoneTool&/mainClass&
&/manifest&
&/archive&
&/configuration&
在将项目打成jar包时,有时会需要将项目打成可以直接运行的jar包,因此就需要将项目依赖的jar包也打入jar包中,此时需要在Eclipse上安装例外一个插件,用来打可执行jar包,详情见链接
六、将项目打成war包
&!-- war插件 --&
&groupId&org.apache.maven.plugins&/groupId&
&artifactId&maven-war-plugin&/artifactId&
&version&2.1.1&/version&
&configuration&
&!-- &warName&${project.build.name}&/warName& --&
&/configuration&
&/plugin&
encoding:强制字符集编码
warName:war包名字——platform.war
webappDirectory:产生war前,用于存放构建war包的目录——target/platform。
warSourceDirectory:我把web工程搞成了eclipse下的WTP类型。我不喜欢maven产生的webapp目录,更喜欢WebContent!
需要注意的是:
采用上述插件部署项目的话,使用clean package tomcat:redeploy命令。使用该命令前,需要先启动tomcat,实际上是为了让tomcat启动manager项目,实现动态部署
此部署方式虽然也是动态部署的范畴,但是每次修改文件后,需要手动再次重新部署,才会加载更改。
如果想让tomcat自动扫描项目的改动,自动加载,那么需要将maven工程的java全部编译的webapp目录下,然后将jar包和资源文件也打到webapp目录。最后在$CATALINA_HOME/conf /Catalina/localhost中添加一个xml文件,修改docbase为webapp目录。
Tomcat常用的部署方式介绍:
七、在打包时,需要清空一些指定的目录
&!-- clean插件 --&
&artifactId&maven-clean-plugin&/artifactId&
&version&2.4.1&/version&
&configuration&
&filesets&
&directory&src/main/webapp/WEB-INF/classes&/directory&
&/fileset&
&directory&src/main/webapp/WEB-INF/lib&/directory&
&/fileset&
&directory&${project.build.directory}&/directory&
&/fileset&
&/filesets&
&/configuration&
八、利用tomcat-maven-plugin插件将项目自动打包并部署到tomcat中
&!-- tomcat插件 --&
&groupId&org.codehaus.mojo&/groupId&
&artifactId&tomcat-maven-plugin&/artifactId&
&configuration&
&server&tomcat6-manager&/server&
&path&/${project.build.name}&/path&
&url&http://localhost:8080/manager&/url&
&username&admin&/username&
&password&admin&/password&
&/configuration&
&executions&
&execution&
&phase&deploy&/phase&
&goal&deploy&/goal&
&/execution&
&/executions&
&/plugins&
path:是指项目部署到tomcat后的项目名称
url:是指tomcat的manager访问地址
server:这个是tomcat服务名称设置,需要配置maven的settings.xml文件,在servers节点中手动配置server,如下所示:
&id&tomcat6-manager&/id&
&username&admin&/username&
&password&admin&/password&
九、利用cargo-maven2-plugin插件将项目自动打包并部署到tomcat中
&plugin&
&!-- 指定插件名称及版本号 --&
&groupId&org.codehaus.cargo&/groupId&
&artifactId&cargo-maven2-plugin&/artifactId&
&version&1.2.3&/version&
&!-- 插件的Tomcat6.x配置 --&
&configuration&
&!-- 容器的配置 --&
&container&
&!-- 指定服务器版本 --&
&containerId&tomcat6x&/containerId&
&!-- 指定服务器的安装目录 --&
&home&E:\Program Files\tomcat-6.0.32&/home&
&/container&
&!-- 具体的配置 --&
&configuration&
&!-- 部署模式:existing、standalone等 --&
&type&existing&/type&
&!-- Tomcat的位置,即catalina.home --&
&home&E:\Program Files\tomcat-6.0.32&/home&
&!-- 配置属性 --&
&properties&
&!-- 管理地址 --&
&cargo.tomcat.manager.url&http://localhost:8080/manager&/cargo.tomcat.manager.url&
&!-- Tomcat用户名 --&
&cargo.remote.username&admin&/cargo.remote.username&
&!-- Tomcat密码 --&
&cargo.remote.password&admin&/cargo.remote.password&
&!-- &cargo.jvmargs& -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8787 &/cargo.jvmargs& --&
&/properties&
&/configuration&
&/configuration&
username和password:是指tomcat的tomcat-users.xml文件中配置的,文件路径为E:\Program Files\tomcat-6.0.32\conf\tomcat-users.xml,如下所示:
&role rolename="manager"/&
&user password="admin" roles="manager" username="admin"/&
十、有时候插件检查不通过,需要人为的忽略对有些插件的检查
&!-- 插件管理 --&
&pluginManagement&
&groupId&org.eclipse.m2e&/groupId&
&artifactId&lifecycle-mapping&/artifactId&
&version&1.0.0&/version&
&configuration&
&lifecycleMappingMetadata&
&pluginExecutions&
&!-- 忽略2.0以上版本的maven-dependency-plugin的检查 --&
&pluginExecution&
&pluginExecutionFilter&
&groupId&org.apache.maven.plugins&/groupId&
&artifactId&maven-dependency-plugin&/artifactId&
&versionRange&[2.0,)&/versionRange&
&goal&copy-dependencies&/goal&
&/pluginExecutionFilter&
&ignore /&
&/pluginExecution&
&/pluginExecutions&
&/lifecycleMappingMetadata&
&/configuration&
&/plugins&
&/pluginManagement&
目前用到的常用配置就是这些,还有些没用过的,有的网友总结的很好,链接如下:
&!-- 表示复制的jar文件去掉版本信息 --&& &stripVersion&false&/stripVersion& 这里应该为 true 才能去掉版本号。多谢兄弟提醒,
zheng12tian
浏览: 248067 次
来自: 杭州
不好用啊,查询失败
我是拿来现成用的,非常感谢博主的代码,不过我给和我一样的人一个 ...
不错,基于冯立彬的文章,然后再自己亲自尝试下,赞+,加油~
漂亮,说明和示例都很精要!
这里也有参考例子:http://paulbourke.net/ ...利用maven中resources插件的copy-resources目标进行资源copy和过滤 - 推酷
利用maven中resources插件的copy-resources目标进行资源copy和过滤
maven用可以利用如下配置进行资源过滤,pom.xml的配置如下:
&!-- 主资源目录 --&
&resources&
&resource&
&!-- 设定主资源目录
&directory&src/main/resources&/directory&
&!-- maven default生命周期,process-resources阶段执行maven-resources-plugin插件的resources目标处理主资源目下的资源文件时,只处理如下配置中包含的资源类型
&includes&
&include&*.xml&/include&
&/includes&
&!-- maven default生命周期,process-resources阶段执行maven-resources-plugin插件的resources目标处理主资源目下的资源文件时,不处理如下配置中包含的资源类型(剔除下如下配置中包含的资源类型)
&excludes&
&exclude&*.xml&/exclude&
&/excludes&
&!-- maven default生命周期,process-resources阶段执行maven-resources-plugin插件的resources目标处理主资源目下的资源文件时,指定处理后的资源文件输出目录,默认是${build.outputDirectory}指定的目录
&targetPath&d:/&/targetPath&
&!-- maven default生命周期,process-resources阶段执行maven-resources-plugin插件的resources目标处理主资源目下的资源文件时,是否对主资源目录开启资源过滤 --&
&filtering&true&/filtering&
&/resource&
&/resources&
利用这个特性可以解决开发跟生产环境数据库连接配置等问题,但有时这个特性并不符合实际。比如,开发环境我们使用tomcat应用服务器,使用dbcp数据源,但是生产则使用jboss应用服务器,使用jndi来管理数据源。开发环境跟生产环境spring容器中对于id=dataSources的bean的配置如下所示:
开发环境:
&bean id=&dataSource& class=&mons.dbcp.BasicDataSource& destroy-method=&close&&
&property name=&driverClassName& value=&oracle.jdbc.driver.OracleDriver& /&
&property name=&url& value=&jdbc:oracle:thin:@localhost:1521:gbst& /& &!-- 开发库 --&
&property name=&username& value=&admin& /&
&property name=&password& value=&admin& /&
&property name=&initialSize& value=&1&/&
&property name=&maxActive& value=&2&/&
&生产环境:
&bean id=&dataSource& class=&org.springframework.jndi.JndiObjectFactoryBean&&
&property name=&jndiName&&
&value&PrdDS&/value&
&/property&
&property name=&resourceRef&&
&value&false&/value&
&/property&
&像这种情况,靠&build&&resources&&resource&的资源过滤功能就不太实用了,这时可以采用resources插件的copy-resources目标进行资源copy,来达到分别配置开发环境与生产环境的数据库连接信息及其它一些配置(缓存服务器地址、短信网关系统连接配置等等),下面分步骤来达到这一目的。
第一步,实用maven穿件一个maven 工程(maven-demo),工程结构如下图:
第二部,在resources下定义spring的配置文件、log4j.properties等文件,并同时在main目录下创建一个deploy的目录,在deploy目录下创建一个prd的目录,然后在prd的目录下也定义一个spring的配置文件、log4j的文件,文件名相同,只是里面的配置的内容不同。添加文件后的maven-demo工程目录结构如下图:
&main/resoures下的spring配置文件内容如下:
&?xml version=&1.0& encoding=&UTF-8&?&
&beans xmlns=&http://www.springframework.org/schema/beans&
xmlns:xsi=&http://www.w3.org/2001/XMLSchema-instance& xmlns:jdbc=&http://www.springframework.org/schema/jdbc&
xmlns:tx=&http://www.springframework.org/schema/tx& xmlns:util=&http://www.springframework.org/schema/util&
xmlns:aop=&http://www.springframework.org/schema/aop& xmlns:context=&http://www.springframework.org/schema/context&
xsi:schemaLocation=&
http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd&&
&!-- 开发环境采用tomcat应用服务器,dbcp数据源管理 --&
&bean id=&dataSource& class=&mons.dbcp.BasicDataSource&&
&property name=&url& value=&jdbc:oracle:thin:@localhost:1521:shell&/&
&property name=&driverClassName& value=&oracle.jdbc.driver.OracleDriver&/&
&property name=&username& value=&scott&/&
&property name=&password& value=&admin123&/&
&property name=&initialSize& value=&1&/&
&property name=&maxActive& value=&2&/&
&bean id=&jdbcTemplate& class=&org.springframework.jdbc.core.JdbcTemplate&&
&property name=&dataSource& ref=&dataSource&&&/property&
main/deploy/prd目录下的spring配置文件内容如下:
&?xml version=&1.0& encoding=&UTF-8&?&
&beans xmlns=&http://www.springframework.org/schema/beans&
xmlns:xsi=&http://www.w3.org/2001/XMLSchema-instance& xmlns:jdbc=&http://www.springframework.org/schema/jdbc&
xmlns:tx=&http://www.springframework.org/schema/tx& xmlns:util=&http://www.springframework.org/schema/util&
xmlns:aop=&http://www.springframework.org/schema/aop& xmlns:context=&http://www.springframework.org/schema/context&
xsi:schemaLocation=&
http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd&&
&bean id=&dataSource& class=&org.springframework.jndi.JndiObjectFactoryBean&&
&property name=&jndiName&&
&value&prdDS&/value&
&/property&
&property name=&resourceRef&&
&value&false&/value&
&/property&
&bean id=&jdbcTemplate& class=&org.springframework.jdbc.core.JdbcTemplate&&
&property name=&dataSource& ref=&dataSource&&&/property&
(log4j.properties内容就不列出了,如果要想使得开发环境跟生产环境不一样的配置,原理跟spring的配置文件一样的)
第三步,配置pom.xml文件,内容如下:
&?xml version=&1.0& encoding=&UTF-8&?&
&project xmlns=&http://maven.apache.org/POM/4.0.0& xmlns:xsi=&http://www.w3.org/2001/XMLSchema-instance&
xsi:schemaLocation=&http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd&&
&modelVersion&4.0.0&/modelVersion&
&groupId&com.shell.maven.demo&/groupId&
&artifactId&maven-demo&/artifactId&
&version&1.0.0-SNAPSHOT&/version&
&name&maven-demo&/name&
&url&http://maven.apache.org&/url&
&properties&
&!-- system property --&
&encoding&UTF-8&/encoding&
&maven.test.skip&true&/maven.test.skip&
&skipTests&true&/skipTests&
&!-- spring版本 --&
&springframework.version&3.1.0.RELEASE&/springframework.version&
&/properties&
&profiles&
&id&prd&/id&
&groupId&org.apache.maven.plugins&/groupId&
&artifactId&maven-resources-plugin&/artifactId&
&version&2.6&/version&
&executions&
&execution&
&id&copy-resources&/id&
&!-- 在default生命周期的 validate阶段就执行resources插件的copy-resources目标 --&
&phase&validate&/phase&
&goal&copy-resources&/goal&
&configuration&
&!-- 指定resources插件处理资源文件到哪个目录下 --&
&outputDirectory&${project.build.outputDirectory}&/outputDirectory&
也可以用下面这样的方式(指定相对url的方式指定outputDirectory)
&outputDirectory&target/classes&/outputDirectory&
&!-- 待处理的资源定义 --&
&resources&
&resource&
&!-- 指定resources插件处理哪个目录下的资源文件 --&
&directory&src/main/deploy/prd&/directory&
&!-- 指定不需要处理的资源
&excludes&
&exclude&WEB-INF/*.*&/exclude&
&/excludes&
&!-- 是否对待处理的资源开启过滤模式 (resources插件的copy-resources目标也有资源过滤的功能,这里配置的
这个功能的效果跟&build&&resources&&resource&下配置的资源过滤是一样的,只不过可能执行的阶段不一样,
这里执行的阶段是插件指定的validate阶段,&build&&resources&&resource&下的配置将是在resources插件的resources目标执行时起作用(在process-resources阶段))--&
&filtering&false&/filtering&
&/resource&
&/resources&
&/configuration&
&inherited&&/inherited&
&/execution&
&/executions&
&/plugins&
&/profile&
&/profiles&
&repositories&
&repository&
&id&myRepo&/id&
&name&myRepo Repository&/name&
&url&.cn:8081/nexus/content/groups/public/&/url&
&releases&
&enabled&true&/enabled&
&/releases&
&snapshots&
&enabled&true&/enabled&
&/snapshots&
&/repository&
&/repositories&
&pluginRepositories&
&pluginRepository&
&id&myRepo&/id&
&name&myRepo Repository&/name&
&url&.cn:8081/nexus/content/groups/public/&/url&
&releases&
&enabled&true&/enabled&
&/releases&
&snapshots&
&enabled&true&/enabled&
&/snapshots&
&/pluginRepository&
&/pluginRepositories&
&resources&
&resource&
&directory&src/main/resources&/directory&
&filtering&true&/filtering&
&/resource&
&/resources&
&!-- 指定在jdk1.6环境下编译 --&
&groupId&org.apache.maven.plugins&/groupId&
&artifactId&maven-compiler-plugin&/artifactId&
&version&3.1&/version&
&configuration&
&source&1.6&/source&
&target&1.6&/target&
&/configuration&
&/plugins&
&dependencies&
&!-- spring 有关jar --&
&dependency&
&groupId&org.springframework&/groupId&
&artifactId&spring-core&/artifactId&
&version&${springframework.version}&/version&
&/dependency&
&dependency&
&groupId&org.springframework&/groupId&
&artifactId&spring-context&/artifactId&
&version&${springframework.version}&/version&
&/dependency&
&dependency&
&groupId&org.springframework&/groupId&
&artifactId&spring-beans&/artifactId&
&version&${springframework.version}&/version&
&/dependency&
&dependency&
&groupId&org.springframework&/groupId&
&artifactId&spring-web&/artifactId&
&version&${springframework.version}&/version&
&/dependency&
&dependency&
&groupId&org.springframework&/groupId&
&artifactId&spring-jdbc&/artifactId&
&version&${springframework.version}&/version&
&/dependency&
&!-- oracle 驱动 --&
&dependency&
&groupId&com.oracle&/groupId&
&artifactId&ojdbc6&/artifactId&
&version&11.2.0.3.0&/version&
&/dependency&
&!-- 采用dbcp数据源 --&
&dependency&
&groupId&commons-dbcp&/groupId&
&artifactId&commons-dbcp&/artifactId&
&version&1.4&/version&
&/dependency&
&!-- comomons jar --&
&dependency&
&groupId&commons-lang&/groupId&
&artifactId&commons-lang&/artifactId&
&version&2.4&/version&
&/dependency&
&dependency&
&groupId&commons-io&/groupId&
&artifactId&commons-io&/artifactId&
&version&2.4&/version&
&/dependency&
&dependency&
&groupId&commons-logging&/groupId&
&artifactId&commons-logging&/artifactId&
&version&1.1.1&/version&
&/dependency&
&dependency&
&groupId&commons-collections&/groupId&
&artifactId&commons-collections&/artifactId&
&version&3.2&/version&
&/dependency&
&dependency&
&groupId&commons-beanutils&/groupId&
&artifactId&commons-beanutils&/artifactId&
&version&1.8.3&/version&
&/dependency&
&/dependencies&
&/project&
&resources插件的目标共有三个,见下图:(截图自Apache官网)
&分别是resources目标 &testResources目标 及copy-resources目标。
resources目标默认绑定到了default生命周期的process-resources阶段,
&testResources目标默认绑定到了default生命周期的
process-test-resources阶段。default生命周期阶段及resources插件这两个目标绑定的阶段和主要作用见下图:
对于上图中说到的这两个插件目标的主要功能需要进行一下补充:
如果配置了如下代码,那么这个时候resources插件的resources目标会进行资源过滤处理,pom.xml配置如下:
&resources&
&resource&
&directory&src/main/resources&/directory&
&filtering&true&/filtering&
&/resource&
&/resources&
同样,如果配置了如下代码,那么这个时候resources的testResources目标会进行资源过滤处理,pom.xml配置如下:
&testResources&
&testResource&
&directory&src/test/resources&/directory&
&filtering&true&/filtering&
&/testResource&
&/testResources&
现在回到讲解resources插件的copy-resources目标上来,这个插件目标有两项内容是必须配置的,见下图:
resources插件的resources目标跟testResources目标都只有outputDirectory一个必须的配置项(都表示要讲资源文件处理到那个目录下去),而copy-resources目标多了一个resources的必须配置项,我个人的理解是这样的。首先这个resources配置项也是用来处理资源的,也包含资源过滤等功能,而copy-resources插件目标往往需要配置到resources插件目标及testResources插件目标的绑定的阶段的前面的阶段去执行,所以在resources插件目标还没有起作用执行时,可以利用copy-resources的resources必须配置项做一些预处理,比如资源过滤等
(这里的resources必须项配置了之后由copy-resoueces插件目标来执行,与&build&&resources&&resources&下的配置没有直接关系,而且互不干涉。可以这么去理解,在main/deploy/prd下的spring配置文件,如果里面也有一些内容是用${properties}来写的,那里在copy-resources插件目标执行拷贝操作前做一个资源过滤的处理,这个功能实现就得靠copy-resouces插件目标的resources必须配置项来完成了)
第四步,验证效果。先运行mvn clean install命令,然后查看applicationContext.xml文件的内容,再运行mvn clean install -P prd 命令,然后查看applicationContext.xml文件的内容,比较两次有何不同。
执行mvn clean install命令如下图:
运行成功,如下图:
编译成功后查看编译后的applicationContext.xml文件内容,如下图:
&从图中可以看到,id=dataSource的配置是开发环境的。
现在运行mvn clean install -P prd命令,如下图:
运行成功,如下图:
此时再来查看编译后的applicationContext.xml文件的内容,如下图:
&从上图中可以看到,applicationContext.xml文件被替换成生产环境下的了。
以上就是resources插件的copy-resources插件目标的作用。对于该插件目标下的resources必须配置项的验证,有兴趣的可以敲代码验证。
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致}

我要回帖

更多关于 mvn resources plugin 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信