目錄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