使用Maven构建应用程序可以轻松管理应用程序相关的资源。 众所周知,应用程序中涉及到一些依赖项,比如Java应用程序依赖于jar文件,可能需要一些时间才能自动找到相应的资源。 而且,即使库文件已经积累,以后应用程序升级后,也需要考虑到依赖的库文件的升级情况,再次进行查找和收集。
另一个问题是,应用程序依赖文件的管理是一项极其复杂的工作,不仅占用存储空间,而且还可能因为应用程序之间的版本问题而导致依赖冲突。 使用Maven的pom模型构建应用程序可以更有效地管理e模块源码编译,并且配置内容非常清晰(有时太多,pom文件可能会变得有点臃肿)。
常用的Maven配置整理如下,供参考。 首先整理一个简单的目录,方便快速查询:
设置字符集 复制 src/main/resources/ 资源文件 编译代码,编译打包成jar文件 创建测试用例 配置输出依赖jar文件到指定目录 配置指定仓库 打包应用及其依赖jar文件变成jar文件
具体配置的详细内容如下:
1.设置字符集
UTF-8
需要设置字符集的地方,只需引用${project.build.sourceEncoding}即可。
2.复制src/main/resources/resource文件
org.apache.maven.plugins
maven-resources-plugin
2.5
copy-resources
package
copy-resources
${project.build.sourceEncoding}
${project.build.directory}
src/main/resources/
*.properties
*.xml
true
3. 编译代码
org.apache.maven.plugins
maven-compiler-plugin
2.5
1.7
1.7
可以指定源代码编译级别。
4.编译打包成jar文件
org.apache.maven.plugins
maven-jar-plugin
package
jar
without-configs
*.properties
*.xml
可以指定打包的jar文件的文件名后缀,也可以设置是否将配置文件打包到jar文件中。
5. 构建测试用例配置
org.apache.maven.plugins
maven-surefire-plugin
2.9
true
true
构建应用程序时e模块源码编译,您可以配置是否执行测试用例代码,或者在测试用例失败时是否忽略它。
6、输出依赖jar文件到指定目录
org.eclipse.m2e
lifecycle-mapping
1.0.0
org.apache.maven.plugins
maven-dependency-plugin
[2.0,)
copy-dependencies
unpack
org.apache.maven.plugins
maven-dependency-plugin
2.8
copy-dependencies
package
copy-dependencies
${project.build.directory}/lib
false
false
true
上面与pluginManagement并列的plugins元素中的配置就是将依赖的jar文件复制到target/lib目录下。 如果 Eclipse 中出现 maven-dependency-plugin (goals “copy-dependency”, “unpack”) ,则 m2e 不支持 错误,上面的 pluginManagement 元素中的配置可以解决此错误消息。
7.配置指定仓库
cloudera
https://repository.cloudera.com/artifactory/cloudera-repos/
如果我们需要的一些依赖jar文件不在maven中央仓库中,我们可以在pom文件中配置特定的仓库,通常需要配置id和url。
8、将应用程序及其依赖的jar文件打成jar文件
maven-assembly-plugin
org.shirdrn.solr.cloud.index.hadoop.SolrCloudIndexer
jar-with-dependencies
make-assembly
package
single