maven学习笔记
maven是一个项目自动化管理与构建工具,简单地来说,我拿它干两件事:一是做本地的jar包管理,二是用来打包。至于打成jar包还是zip包,可以在pom.xml文件中制定。
pom文件
在eclipse中安装maven插件后,新建maven工程,可以发现在根目录下有一个pom.xml。pom文件是整个项目的核心,可以添加远程仓库地址:
<repositories> <repository> <id>maven repo</id> <url>http://mvnrepository.com/artifact/</url> </repository></repositories>
我一般是用mvnrepository作为中央repository。
也可以指定项目build时encoding方式为UTF-8,在本地下载jar包时同时下载source、javaDoc的jar包:
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <downloadSources>true</downloadSources> <downloadJavadocs>true</downloadJavadocs> </properties>
可以添加jar包依赖:
<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-core</artifactId> <version>1.2.1</version> </dependency> </dependencies>
可以指定项目build方式:
<build> <plugins><plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <executions><execution> <id>attach-sources</id> <goals> <goal>jar</goal> </goals></execution> </executions></plugin> </plugins> </build>
上面的build方式为在项目打包时,同时也会打sourcejar包。我平时常用build方式都会采用assembly,会打一个纯项目包与with-dependencies的包(即加上了所有的包依赖))。
下载source与javadoc
下载依赖包的source与javadoc,可输入下面两条命令,参看这里
mvn dependency:sourcesmvn dependency:resolve -Dclassifier=javadoc
setting文件
除了在pom.xml可以指定中央repository的URL地址,其次也可以在settting.xml指定中央repo的镜像地址,比如这样:
<mirrors> <mirror> <id>internal-repository</id> <name>Maven Repository Manager</name> <url>http://repo.mycompany.com/proxy</url> <mirrorOf>*</mirrorOf> </mirror> </mirrors>
注意
:setting.xml要放在~/.m2/
目录下。