中国移动送流量和生活流量卡券怎么送

Maven最佳实践:版本管理 - Maven中文 - ITeye技术网站
博客分类:
什么是版本管理
首先,这里说的版本管理(version management)不是指版本控制(version control),但是本文假设你拥有基本的版本控制的知识,了解subversion的基本用法。版本管理中说得版本是指构件(artifact)的版本,而非源码的版本(如subversion中常见的rXXX,或者git中一次提交都有个sha1的commit号)。
比如我有一个项目,其artifactId为myapp,随着项目的进展,我们会生成这样一些jar:myapp-1.0-SNAPSHOT.jar,myapp-1.0.jar,myapp-1.1-SNAPSHOT.jar,myapp-1.0.1.jar等等。你可能会说,这很简单啊,我在POM中改个version,mvn clean install不就完了?但这只是表面,本文我将讲述,snapshot和release版本的区别,如何自动化版本发布(如果你的项目有几十个module,你就会觉得手工改POM来升级版本是很痛苦的事情),结合自动化发布的过程,这里还会介绍maven-release-plugin。此外,一些scm概念也会被涉及到,比如tag和branch。
前提:版本控制
不管怎样,我们都需要建立一个项目并提交到SCM中,这里我以subversion为例。你得有一个配置好的subversion repository,这里我建立了一个空的svn仓库,其地址为:https://192.168.1.100:8443/svn/myapp/ 现在,该目录下只有三个空的典型的子目录:/trunk/, branches/, tags/。分别用来存放主干,分支,以及标签。
接着将项目导入到svn仓库中,到项目根目录,运行如下命令:
svn import -m 'project initialization' https://192.168.1.100:8443/svn/myapp/trunk
(注意,这么做你会将目录下所有文件导入到svn库中,但是这其中某些目录和文件是不应该被导入的,如/target目录,以及eclipse相关的项目文件)
目前,我们将项目的版本设置为1.0-SNAPSHOT。
为什么用SNAPSHOT?
我先说说如果没有SNAPSHOT会是什么样子。假设你的项目有2个模块,A,B,其中A依赖B。这三个模块分别由甲,乙两个个人负责开发。在开发过程中,因为A是依赖于B的,因此乙每次做一个改动都会影响到甲,于是,乙提交了一些更改后,需要让甲看到。这个时候,怎么做呢?乙对甲说,“你签出我的代码,build一下就OK了”,甲有点不情愿,但还是照做了,签出代码,svn clean install,然后,发现build出错了,有个测试没有pass。甲郁闷了,对乙说,“你的代码根本不能用,我不想build,你build好了给我”,乙看了看确实自己的代码build不过,于是回去解决了,然后打了个jar包,扔给甲,甲对了对groupId,artifactId,放到了自己的.m2/repository/目录下,OK,能用了。
于是乙每次更新都这样做,打包,复制,然后甲粘贴,使用……渐渐的,大家发现这是个很笨的办法,这是纯手工劳动阿,程序员最BS的就是重复劳动。一天,甲对乙说,“你知道nexus么?你把你的jar发布到nexus上就可以了,我要用就自动去下载,这多棒!”乙说“哦?有这好东西,我去看看”于是乙发现了nexus这块新大陆,并成功的发布了B到nexus上。(见,
但是,请注意,我们这里的一切都假设没有SNAPSHOT,因此如果乙不更改版本,甲下载一次如B-1.0.jar之后,maven认为它已经有了正确的B的版本,就不会再重新下载。甲发现了这个问题,对乙说“你的更新我看不到,你更新了么?”乙说“不可能!我看看”,于是检查一下甲下载的C-1.0.jar,发现那是几天前的。乙一拍脑袋,说“这简单,我更新一下我的版本就好了,我发布个B-1.1.jar上去,你更新下依赖版本”,甲照做了,似乎这么做是可行的。
这里有一个问题,一次提交就更新一个版本,这明显不是正确的管理办法,此外,乙得不停的通知甲更新对B的依赖版本,累不累阿?1.0,或者说1.1,2.0,都代表了稳定,这样随随便便的改版本,能稳定么?
所以Maven有SNAPSHOT版本的概念,它与release版本对应,后者是指1.0,1.1,2.0这样稳定的发布版本。
现在乙可以将B的版本设置成1.0-SNAPSHOT,每次更改后,都mvn deploy到nexus中,每次deploy,maven都会将SNAPSHOT改成一个当前时间的timestamp,比如B-1.0-SNAPSHOT.jar到nexus中后,会成为这个样子:B-1.0-325-13.jar。Maven在处理A中对于B的SNAPSHOT依赖时,会根据这样的timestamp下载最新的jar,默认Maven每天
更新一次,如果你想让Maven强制更新,可以使用-U参数,如:mvn clean install -U
现在事情简化成了这个样子:乙做更改,然后mvn deploy,甲用最简单的maven命令就能得到最新的B。
从1.0-SNAPSHOT到1.0到1.1-SNAPSHOT
SNAPSHOT是快照的意思,项目到一个阶段后,就需要发布一个正式的版本(release版本)。一次正式的发布需要这样一些工作:
在trunk中,更新pom版本从1.0-SNAPSHOT到1.0
对1.0打一个svn tag
针对tag进行mvn deploy,发布正式版本
更新trunk从1.0到1.1-SNAPSHOT
你可以手工一步步的做这些事情,无非就是一些svn操作,一些pom编辑,还有一些mvn操作。但是你应该明白,手工做这些事情,一来繁琐,而来容易出错。因此这里我介绍使用maven插件来自动化这一系列动作。
首先我们需要在POM中加入scm信息,这样Maven才能够替你完成svn操作,这里我的配置如下:
&connection&scm:svn:http://192.168.1.100:8443/svn/myapp/trunk/&/connection&
&developerConnection&scm:svn:https://192.168.1.100:8443/svn/myapp/trunk/&/developerConnection&
需要注意的是,很多windows使用的tortoiseSVN客户端,而没有svn命令行客户端,这会导致Maven所有svn相关的工作失败,因此,你首先确保svn --version能够运行。
想要让Maven帮我们自动发布,首先我们需要配置好分发仓库。关于这一点,见
——分发构件至远程仓库。
maven-release-plugin
紧接着,我们需要配置maven-release-plugin,这个插件会帮助我们升级pom版本,提交,打tag,然后再升级版本,再提交,等等。基本配置如下:
&groupId&org.apache.maven.plugins&/groupId&
&artifactId&maven-release-plugin&/artifactId&
&version&2.0-beta-7&/version&
&configuration&
&tagBase&https://192.168.1.100:8443/svn/myapp/tags/&/tagBase&
&/configuration&
GAV我就不多解释了,这里我们需要注意的是configuration元素下的tagBase元素,它代表了我们svn中的tag目录,也就是说,maven-release-plugin帮我们打tag的时候,其基础目录是什么。这里,我填写了svn仓库中的标准的tags目录。
接着,确保你的所有代码都提交了,如果你有未提交代码,release插件会报错,既然你要发布版本了,就表示代码是稳定的,所以要么要么把代码提交了,要么把本地的更改抛弃了。
现在,屏住呼吸,执行:
mvn release:prepare
执行过程中,你会遇到这样的提示:
What is the release version for "Unnamed - org.myorg:myapp:jar:1.0-SNAPSHOT"? (org.myorg:myapp) 1.0: :
——“你想将1.0-SNAPSHOT发布为什么版本?默认是1.0。”我要的就是1.0,直接回车。
What is SCM release tag or label for "Unnamed - org.myorg:myapp:jar:1.0-SNAPSHOT"? (org.myorg:myapp) myapp-1.0: :
——“发布的tag标签名称是什么?默认为myapp-1.0。”我还是要默认值,直接回车。
What is the new development version for "Unnamed - org.myorg:myapp:jar:1.0-SNAPSHOT"? (org.myorg:myapp) 1.1-SNAPSHOT: :
——“主干上新的版本是什么?默认为1.1-SNAPSHOT。”哈,release插件会自动帮我更新版本到1.1-SNAPSHOT,很好,直接回车。
然后屏幕刷阿刷,maven在build我们的项目,并进行了一些svn操作,你可以仔细查看下日志。
那么结果是什么呢?你可以浏览下svn仓库:
我们多了一个tag:https://192.168.1.100:8443/svn/myapp/tags/myapp-1.0/,这就是需要发布的版本1.0。
再看看trunk中的POM,其版本自动升级成了1.1-SNAPSHOT。
这不正是我们想要的么?等等,好像缺了点什么,对了,1.0还没有发布到仓库中呢。
再一次屏住呼吸,执行:
mvn release:perform
maven-release-plugin会自动帮我们签出刚才打的tag,然后打包,分发到远程Maven仓库中,至此,整个版本的升级,打标签,发布等工作全部完成。我们可以在远程Maven仓库中看到正式发布的1.0版本。
这可是自动化的
版本发布!
Maven的版本规则
前面我们提到了SNAPSHOT和Release版本的区别,现在看一下,为什么要有1.0,1.1,1.1.1这样的版本,这里的规则是什么。
Maven主要是这样定义版本规则的:
&主版本&.&次版本&.&增量版本&
比如说1.2.3,主版本是1,次版本是2,增量版本是3。
主版本一般来说代表了项目的重大的架构变更,比如说Maven 1和Maven 2,在架构上已经两样了,将来的Maven 3和Maven 2也会有很大的变化。次版本一般代表了一些功能的增加或变化,但没有架构的变化,比如说Nexus 1.3较之于Nexus 1.2来说,增加了一系列新的或者改进的功能(仓库镜像支持,改进的仓库管理界面等等),但从大的架构上来说,1.3和1.2没什么区别。至于增量版本,一般是一些小的bug fix,不会有重大的功能变化。
一般来说,在我们发布一次重要的版本之后,随之会开发新的版本,比如说,myapp-1.1发布之后,就着手开发myapp-1.2了。由于myapp-1.2有新的主要功能的添加和变化,在发布测试前,它会变得不稳定,而myapp-1.1是一个比较稳定的版本,现在的问题是,我们在myapp-1.1中发现了一些bug(当然在1.2中也存在),为了能够在段时间内修复bug并仍然发布稳定的版本,我们就会用到分支(branch),我们基于1.1开启一个分支1.1.1,在这个分支中修复bug,并快速发布。这既保证了版本的稳定,也能够使bug得到快速修复,也不同停止1.2的开发。只是,每次修复分支1.1.1中的bug后,需要merge代码到1.2(主干)中。
上面讲的就是我们为什么要用增量版本。
目前我们trunk的版本是1.1-SNAPSHOT,其实按照前面解释的版本规则,应该是1.1.0-SNAPSHOT。
现在我们想要发布1.1.0,然后将主干升级为1.2.0-SNAPSHOT,同时开启一个1.1.x的分支,用来修复1.1.0中的bug。
首先,在发布1.1.0之前,我们创建1.1.x分支,运行如下命令:
mvn release:branch -DbranchName=1.1.x -DupdateBranchVersions=true -DupdateWorkingCopyVersions=false
这是maven-release-plugin的branch目标,我们指定branch的名称为1.1.x,表示这里会有版本1.1.1, 1.1.2等等。updateBranchVersions=true的意思是在分支中更新版本,而updateWorkingCopyVersions=false是指不更改当前工作目录(这里是trunk)的版本。
在运行该命令后,我们会遇到这样的提示:
What is the branch version for "Unnamed - org.myorg:myapp:jar:1.1-SNAPSHOT"? (org.myorg:myapp) 1.1-SNAPSHOT: :
——"分支中的版本号是多少?默认为1.1-SNAPSHOT" 这时我们想要的版本是1.1.1-SNAPSHOT,因此输入1.1.1-SNAPSHOT,回车,maven继续执行直至结束。
接着,我们浏览svn仓库,会看到这样的目录:https://192.168.1.100:8443/svn/myapp/branches/1.1.x/,打开其中的POM文件,其版本已经是1.1.1-SNAPSHOT。
分支创建好了,就可以使用release:prepare和release:perform为1.1.0打标签,升级trunk至1.2.0-SNAPSHOT,然后分发1.1.0。
至此,一切OK。
本文讲述了如何使用Maven结合svn进行版本管理。解释了Maven中SNAPSHOT版本的来由,以及Maven管理版本的规则。并结合SCM的tag和branch概念展示了如何使用maven-release-plugin发布版本,以及创建分支。本文涉及的内容比较多,且略显复杂,不过掌握版本管理的技巧对于项目的正规化管理来说十分重要。Maven为我们提供了一些一套比较成熟的机制,值得掌握。
浏览 93454
我在mvn release:prepare時,遇到了如下錯誤,SVN該提交的都提交了,還是不行啊![INFO] --- maven-release-plugin:2.4.2:prepare (default-cli) @ resources ---[INFO] Verifying that there are no local modifications...[INFO]&& ignoring changes on: **\release.properties, **\pom.xml.next, **\pom.xml.releaseBackup, **\pom.xml.backup, **\pom.xml.branch, **\pom.xml.tag[INFO] Executing: cmd.exe /X /C "svn --non-interactive status"[INFO] Working directory: C:\Users\Administrator\workspace\resources[INFO] ------------------------------------------------------------------------[INFO] BUILD FAILURE[INFO] ------------------------------------------------------------------------[INFO] Total time: 4.900s[INFO] Finished at: Wed Jan 08 13:40:52 CST 2014[INFO] Final Memory: 6M/60M[INFO] ------------------------------------------------------------------------[ERROR] Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.4.2:prepare (default-cli) on project resources: Unable to check for local modifications[ERROR] Provider message:[ERROR] The svn command failed.[ERROR] Command output:[ERROR] svn: E155036: Please see the 'svn upgrade' command[ERROR] svn: E155036: The working copy at 'C:\Users\Administrator\workspace\resources'[ERROR] is too old (format 29) to work with client version '1.8.5-SlikSvn-1.8.5-X64 (SlikSvn/1.8.5) X64' (expects format 31). You need to upgrade the working copy first.[ERROR] -& [Help 1][ERROR][ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.[ERROR] Re-run Maven using the -X switch to enable full debug logging.[ERROR][ERROR] For more information about the errors and possible solutions, please read the following articles:[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureExceptionC:\Users\Administrator\workspace\resources&svn upgrade 就可以了
潛龍勿用 写道[ERROR] is too old (format 29) to work with client version '1.8.5-SlikSvn-1.8.5-X64 (SlikSvn/1.8.5) X64' (expects format 31). You need to upgrade the working copy first.错误信息说的很清楚了,你的工作目录下的内容是由版本较老的客户端checkout出来的(根据format 29的信息,估计应该是1.7.X的版本。),而你现在使用的是1.8.5的客户端,所以必须先将你本地的工作目录通过新的客户端将文件格式升级到31,即format 31.还有一个办法就是卸载你安装的客户端,重新安装1.7.9版本的客户端,也可以正常使用。我重新安裝1.7.x版的也不能成功……,想了很多辦法都不行。算了不折騰了……
[ERROR] is too old (format 29) to work with client version '1.8.5-SlikSvn-1.8.5-X64 (SlikSvn/1.8.5) X64' (expects format 31). You need to upgrade the working copy first.错误信息说的很清楚了,你的工作目录下的内容是由版本较老的客户端checkout出来的(根据format 29的信息,估计应该是1.7.X的版本。),而你现在使用的是1.8.5的客户端,所以必须先将你本地的工作目录通过新的客户端将文件格式升级到31,即format 31.还有一个办法就是卸载你安装的客户端,重新安装1.7.9版本的客户端,也可以正常使用。
“需要注意的是,很多windows使用的tortoiseSVN客户端,而没有svn命令行客户端,这会导致Maven所有svn相关的工作失败,因此,你首先确保svn --version能够运行。”这里是说一定要装个服务端吗?我现在的eclipse3.6 已经安装了maven插件 和 tortoiseSVN,但是一直没法使用 SCM,也不知道怎么用,网上搜了很久,感觉都是稀里糊涂的没重点。。。我现在没法通过Maven中的 check out 从svn上下载maven项目,只能用普通的从svn上直接拉项目。。。能详细说明下SCM的使用吗? 这个意思是你需要在cmd窗口运行“svn --version”,如果不能运行,你需要去装一个svn的客户端,是基于命令行的那种客户端。你可以去下载 Slik-Subversion 。
& 上一页 1
浏览: 1270572 次
来自: 苏州
赞赞赞,生动有趣还说明问题
新的网站访问不了啊~~博主快更新
言简意赅,厉害
这篇文章,真心的不错,受益匪浅
谢谢您,非常赞Maven Repository: org.apache.maven.plugins >> maven-resources-plugin >>
>> maven-resources-plugin
The Resources Plugin handles the copying of project resources to the output
directory. There are two different kinds of resources: main resources and test resources. The
difference is that the main resources are the resources associated to the main
source code while the test resources are associated to the test source code.
Thus, this allows the separation of resources for the main source code and its
unit tests.
LicenseApache 2.0CategoriesTagsUsed ByVersionRepositoryUsagesDate3.0.x 0
(Dec, 2016) 0
(Jun, 2016) 0
(May, 2016)2.7.x(Sep, 2014)2.6.x(Aug, 2012)2.5.x(Feb, 2011)2.4.x(May, 2010) 0
(Feb, 2010)(Sep, 2009) 0
(Aug, 2009)2.3.x(Oct, 2008)2.2.x(May, 2006)2.1.x(May, 2006)2.0.x 0
(May, 2006) 0
(May, 2006) 0
(May, 2006)Related Books (2015)by Raghuram Bharathan (2014)by Prabath Siriwardena (2014)by Balaji Varanasi, Sudha Belida (2014)by Sonatype Company (2013)by Jonathan Lalou (2013)by Maurizio Turatti, Maurizio Pillitu (2011)by Srirangan (2009)by Brett Porter, Maria Odea Ching (2008)by Sonatype Company (2005)by Vincent Massol, Timothy M. O'Brien
Web site developed by
Powered by:本文讲的是在eclipse中使用maven构建Web项目时报错:maven-resources-plugin 解决方法,
今天在一个新建的web项目中发生了以下错误:
Failed to read artifact descriptor for org.apache.maven.plugins:maven-resources-plugin
今天在一个新建的web项目中发生了以下错误:
Failed to read artifact descriptor for org.apache.maven.plugins:maven-resources-plugin
Eclipse的错误提示如下:
Could not calculate build plan: Plugin org.apache.maven.plugins:maven-resources-plugin:2.6 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.apache.maven.plugins:maven-resources-plugin:jar:2.6
Plugin org.apache.maven.plugins:maven-resources-plugin:2.6 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.apache.maven.plugins:maven-resources-plugin:jar:2.6
一开始以为是版本问题,因为看到eclipse内嵌有maven,而我自己系统也装了maven,所以改了ecplise里的maven home设置,错误依旧;
在baidu中搜了一下(老样子,除了你不想找的,很难找到你想找的技术资料,纯属发牢骚~哈哈);
baidu找到的资料:
1,可能是网络被墙,设置镜像;
2,可以试试重新下载maven-resources-
经过尝试1,没解决问题(甚至不小心增加了问题,这个怪我自己不够细心啦,可能复制的镜像配置里有非法字符),2,我下了旧一点的版本了,问题依旧;
问题解决的场景有点意向不到(其实很多问题最初解决场景都是意向不到的,hoho~),我直接在命令行打mvn compile,提示了与eclipse不一样的错误:
[ERROR] Error executing Maven.
[ERROR] 1 problem was encountered while building the effective settings
[FATAL] Non-parseable settings /usr/share/maven/conf/settings.xml: in comment after two dashes (--) next character must be & not
(position: START_TAG seen ...\n
&!-- ... @164:17)
@ /usr/share/maven/conf/settings.xml, line 164, column 17
上面的错误,是因为我增加了maven的镜像,当时就是直接复制于网络的配置项(但其实是注释掉的了)
删掉之后,再次compile,命令行中就没有问题了,回到eclipse中,刷新项目,继续报同样的错误!!!!!
到这里可以确定是eclipse部分的问题了,重新查看了eclipse的maven配置,发现没有指定全局配置(前面配置的镜像啥的都在全局配置文件里),立刻指定配置Preferences–&Maven–&User Settings–&Global Settings,指定到我的配置文件:/usr/share/maven/conf/settings.xml, 保存配置,刷新项目,提示下载maven的东东了,到此问题真正解决了~~~
后面贴网上找到的oschina的maven镜像配置(我自己没用,试了一下,速度:零点几K/S):
&!----这是全局镜像,记得放到mirrors位置--&
&id&nexus-osc&/id&
&mirrorOf&*&/mirrorOf&
&name&Nexus osc&/name&
&url&http://maven.oschina.net/content/groups/public/&/url&
&!--这是插件的,记得放到插件配置位置---&
&id&jdk-1.4&/id&
&activation&
&jdk&1.4&/jdk&
&/activation&
&repositories&
&repository&
&id&nexus&/id&
&name&local private nexus&/name&
&url&http://maven.oschina.net/content/groups/public/&/url&
&releases&
&enabled&true&/enabled&
&/releases&
&snapshots&
&enabled&false&/enabled&
&/snapshots&
&/repository&
&/repositories&
&pluginRepositories&
&pluginRepository&
&id&nexus&/id&
&name&local private nexus&/name&
&url&http://maven.oschina.net/content/groups/public/&/url&
&releases&
&enabled&true&/enabled&
&/releases&
&snapshots&
&enabled&false&/enabled&
&/snapshots&
&/pluginRepository&
&/pluginRepositories&
&/profile&
maven项目建立pom.xml报无法解析org.apache.maven.plugins:maven-resources-plugin:2.4.3
一、发现问题
建立maven项目后,pom.xml在显示红叉,鼠标放上去,显示Execution default-testResources of goal org.apache.maven.plugins:maven-resources-plugin:2.4.3错误。
二、原因分析
缺少maven-resources-plugin-2.4.3.jar或该文件下载不正确,可到repository\org\apache\maven\plugins\maven-resources-plugin\目录看看下载是否正确。或删除该文件重新下载。
三、解决办法
pom.xml文件加入
&dependency&
&groupId&org.apache.maven.plugins&/groupId&
&artifactId&maven-resources-plugin&/artifactId&
&version&2.4.3&/version&
&/dependency&
步骤二:run as —& maven install下载即可
以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索文件
解决方法任务、法师战役 解决方法、wow解决方法、wow解决方法任务、解决方法 英文,以便于您获取更多的相关知识。
为您提供简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效率,降低 IT 成本...
RDS是一种稳定可靠、可弹性伸缩的在线数据库服务。支持MySQL、SQL Server、PostgreSQL、高...
云栖社区()为您免费提供相关信息,包括
的信息,还有解决方法任务、法师战役 解决方法、wow解决方法、wow解决方法任务、解决方法 英文等
,所有相关内容均不代表云栖社区的意见!Apache Maven Resources Plugin – Introduction
Introduction
Version: 3.0.2
Apache Maven Resources Plugin
The Resources Plugin handles the copying of project resources to the output directory. There are two different kinds of resources: main resources and test resources. The difference is that the main resources are the resources associated to the main source code while the test resources are associated to the test source code.
Thus, this allows the separation of resources for the main source code and its unit tests.
Starting with version 2.3 this plugin uses the
shared component for filtering resources.
Goals Overview
The Resources Plugin copies files specified by Resource elements, to an output directory. The three variations below only differ in how the resource and output directory elements are specified or defaulted. The Resources Plugin has three goals:
copies the resources for the main source code to the main output directory.
This goal usually executes automatically, because it is bound by default to the process-resources life-cycle phase. It always uses the project.build.resources element to specify the resources, and by default uses the project.build.outputDirectory to specify the copy destination.
copies the resources for the test source code to the test output directory.
This goal usually executes automatically, because it is bound by default to the process-test-resources life-cycle phase. It always uses the project.build.testResources element to specify the resources, and by default uses the project.build.testOutputDirectory to specify the copy destination.
copies resources to an output directory.
This goal requires that you configure the resources to be copied, and specify the outputDirectory.
General instructions on how to use the Resources Plugin can be found on the . Some more specific use cases are described in the examples given below.
In case you still have questions regarding the plugin's usage, please have a look at the
and feel free to contact the . The posts to the mailing list are archived and could already contain the answer to your question as part of an older thread. Hence, it is also worth browsing/searching the .
If you feel like the plugin is missing a feature or has a defect, you can fill a feature request or bug report in our . When creating a new issue, please provide a comprehensive description of your concern. Especially for fixing bugs it is crucial that the developers can reproduce your problem. For this reason, entire debug logs, POMs or most preferably little demo projects attached to the issue are very much appreciated. Of course, patches are welcome, too. Contributors can check out the project from our
and will find supplementary information in the .
The following examples show how to use the Resources Plugin in more advanced use cases:
Copyright &
All rights reserved.

我要回帖

更多关于 中国移动流量券 的文章

 

随机推荐