最近工作機會難得,有空摸 maven
沒想到想說簡單的建置小專案
就遇到一堆雷
在這邊筆記
安裝
我用 chocolate 安裝
安裝可參考:
How to Install Apache Maven on Ubuntu 18.04 | Linuxize
請不要使用 Powershell!!
請不要使用 Powershell!!
請不要使用 Powershell!!
請不要使用 Powershell!!
很重要,所以我說三遍
就算用爛爛的 cmd ,也不要浪費大量時間處理 powershell
好像是 Powershell -D 會有問題
我就沒有詳細研究了
【坑】【maven】在PowerShell窗口下执行maven命令行报错:Unknown lifecycle phase .test.skip=true._三年小白的博客-CSDN博客
用 Powershell Script 大概會看到
1 | [ERROR] Unknown lifecycle phase "/home/tucson/Projects/kafkaGuideTest/target/Getting-Started-0.0.1-SNAPSHOT.jar". You must specify a valid lifecycle phase or a goal in the format <plugin-prefix>:<goal> or <plugin-group-id>:<plugin-artifact-id>[:<plugin-version>]:<goal>. Available lifecycle phases are: validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test-sources, process-test-sources, generate-test-resources, p rocess-test-resources, test-compile, process-test-classes, test, prepare-package, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy, pre-site, site, post-site, site-deploy, pre-clean, clean, post-clean. -> [Help 1] |
但絕非你的指令錯誤
建置 Maven
建置新專案
mvn archetype:create
Choose archetype: 選擇建立Project的範本,預設是99:maven-archetype-quickstart建立一個最基本的Project
Choose version: 選擇範本的版本,會列出一些範本可用的版本,其差異是就不用版本的範本可能會建立有不同的資源檔(比如可能附帶圖檔)
定義groupId: 輸入要建立Project所隸屬的組織或公司,如我自已用idv.kentyeh.software
定義artifactId: 就是Project名稱,例如 firstMaven
定義version: Project的版本號,預設是1.0-SNAPSHOT
定義package: 初始建立的Java Package, 如 idv.kentyeh.software
Archetype有哪些
Archetype ArtifactIds 說明
maven-archetype-archetype 產生Archetype專案
maven-archetype-j2ee-simple 產生簡單的J2EE專案
maven-archetype-plugin 產生Maven plugin專案
maven-archetype-plugin-site 產生Maven plugin site專案
maven-archetype-portlet 產生JSR-268 Portlet專案
maven-archetype-profiles
maven-archetype-quickstart 產生簡單的Maven專案
maven-archetype-site 產生Maven site專案
maven-archetype-site-simple 產生簡單的Maven site專案
maven-archetype-webapp 產生Maven Web App專案以上最常使用maven-archetype-quickstart建立簡單的Maven專案,
及使用maven-archetype-webapp建立Maven Web專案,剩下的很少用(我個人沒用過)。
maven中的groupId和artifactId到底指的是什么?_孙雪峰-CSDN博客
一種快速輸入建置方法
maven-archetype-quickstart (Java Project)
1 | mvn archetype:generate -DgroupId=com.yiibai.core -DartifactId=ProjectName -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false |
maven-archetype-webapp (Java Web Project)
1 | mvn archetype:generate -DgroupId=com.yiibai.web -DartifactId=ProjectName -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false |
作者:park
链接:https://juejin.im/post/5a1e1f76f265da432b4a92cb
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
題外話:
Mave教學 | Maven 初學者中文教程
mvn archetype:create 我沒辦法使用…
加入依賴套件
1 | <dependencies> |
編譯 Java
mvn compile
1 | [INFO] Scanning for projects... |
執行 Java
mvn exec:java -Dexec.mainClass=”sample.App”
1 | [INFO] Scanning for projects... |
使用 mvn
在 win 我寫簡單 bat
1 | call mvn compile |
這邊我踩到一個地雷
mvn 前面需要加 call
但是總是在執行的時候執行完一個mvn 目標後自動退出,pause命令也無效,分析原因為mvn本身是一個bat命令,因此在exit退出的時候,整個指令碼程序將退出,加入call命令呼叫即可。
參考來源:呼叫maven命令的BAT指令碼分享 | 程式前沿
科普小知識
Linux 沒有 pause
1 | # method 1 |
1 |
|
好啦,其實用 Linux 應該都是打指令呼叫程式
應該比較不會有 window 問題
其他資源:
- bat結合maven 實現windows下maven自動打包指令碼 - IT閱讀
- 【坑】【maven】在PowerShell窗口下执行maven命令行报错:Unknown lifecycle phase .test.skip=true._三年小白的博客-CSDN博客
- Maven创建项目时出现Generating project in Interactive mode就一直卡住的解决方案_程高伟-CSDN博客
- 菜鳥工程師 肉豬: Maven 什麼是Archetype
- 使用Maven模板创建项目 - 掘金
- 整合 Maven 與 Yeoman,學習筆記 (2) - 使用 mvn archetype:generate 建立 JAX-RS / Jersey 專案 | 格物致知
- How to Install Apache Maven on Ubuntu 18.04 | Linuxize