目录java
今天是端午节哦,昨天大学同窗举个了会。鱼头泡饼贼拉香,嗯哼,有点跑题了;以后去了同窗家里坐了坐;发现同我有同样的书,即:《maven实战》;记得是从二手网店淘到的,已经买了有小半年,还只看了个目录; 打算用个端午的一天时间给它啃下来。。至此,立了一个小Flag...apache
目录
安全
默认状况下:maven
注: 如pom.xml中的scope(依赖的范围),默认值是compile; 若是你看到指定为test,即:该依赖只对测试代码有效,若在主代码中使用,会形成编译错误。测试
mvn clean compile
背后的执行过程:ui
- 先执行clean:clean任务,展出target/目录。
- 再执行resources:resources任务,处理项目资源。
- 最后执行compiler:compile任务,将项目主代码编译至target/classes目录。
注:上文说起的如 clean:clean ...指的是Maven的插件和目标,eg: compiler:compile是compiler插件的complie目标。
mvn clean test
背后的执行过程:插件
注: 在执行test以前,Maven先自动执行项目主资源处理、主代码编译、测试资源处理、测试代码编译等工做,是就是Maven生命周期的特征。即,会先执行mvn clean compile背后的命令操做。code
- 先执行resources:testResources任务
- 再执行compiler:testCompile任务
- 最后执行surefire:test任务,执行测试并输出测试报告。
注:上文说起的如 clean:clean ...指的是Maven的插件和目标,eg: compiler:compile是compiler插件的complie目标。
mvn clean package
背后的执行过程:
执行jar:jar任务,负责打jar包。orm
mvn clean install
做用:将项目输出的jar包安装到Maven本地仓库中,供其余Maven项目使用。xml
例如: <project> ... <bulid> <plugins> <plugin> <groupId> org.apache.maven.plugins </groupId> <artifactId> maven-compiler-plugin </artifactId> <configuration> <source> 1.8 </source> <target> 1.8 </target> </configuration> </plugin> </plugins> </build> ... </project>
解: 因为历史缘由,Maven的核心插件之一compiler插件默认只支持Java 1.3,所以须要配置该插件使其支持当前的JDK版本。
注: 默认生成的jar包不能直接运行,由于没有将main方法的类信息添加到manifest中[在jar文件中META-INF/MANIFEST.MF文件中没有Main-Class的配置]。须要借助maven-shade-plugin插件。
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>3.1.1</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <!-- 打成可执行的jar包 的主方法入口--> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <mainClass>com.golden.MainTest</mainClass> </transformer> </configuration> </execution> </executions> </plugin>
mvn archetype:generate
背后的执行过程:
- Maven2并不建议用改命令,这可能不是安全的,Maven2会自动下载最新版本Archetype插件,可能不稳定。而Maven3会自动下载最新最稳定的版本,因此能够放心使用。Maven2建议手动指定,命令格式为:mvn groupId:artifactId:version:goal[插件目标], eg:mvn org.apache.maven.plugins:maven-archetype-plugin:2.0-alpha-5:generate