Maven学习与理解
一个maven项目被认为是web项目还是普通项目仅在于是war还是jar。
Maven构件查询网站
查询maven repository
maven获取
- mvn dependency:sources
- mvn dependency:resolve -Dclassifier=javadoc
查看项目直接和传递依赖
- mvn dependency:tree
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<version>2.9</version>
<configuration>
<additionalConfig>
<file>
<name>.settings/org.eclipse.core.resources.prefs</name>
<content>
<![CDATA[eclipse.preferences.version=1${line.separator}encoding/<project>=${project.build.sourceEncoding}${line.separator}]]>
</content>
</file>
</additionalConfig>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.6</source> <!-- 源代码使用的开发版本 -->
<target>1.6</target> <!-- 需要生成的目标class文件的编译版本 -->
<!-- 一般而言,target与source是保持一致的,但是,有时候为了让程序能在其他版本的jdk中运行(对于低版本目标jdk,源代码中需要没有使用低版本jdk中不支持的语法),会存在target不同于source的情况 -->
<!-- 这下面的是可选项 -->
<meminitial>128m</meminitial>
<maxmem>512m</maxmem>
<fork>true</fork> <!-- fork is enable,用于明确表示编译版本配置的可用 -->
<compilerVersion>1.3</compilerVersion>
<!-- 这个选项用来传递编译器自身不包含但是却支持的参数选项 -->
<!-- compilerArgument>-verbose -bootclasspath ${java.home}\lib\rt.jar</compilerArgument -->
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
生成eclipse格式的maven项目:mvn eclipse:eclipse
Maven Scope的理解
- test:只在测试时依赖
- provider:只在编译时依赖编译后产生的war包不包含它及它的依赖
- system:该依赖包不在maven库中而是在系统中