mvn編譯參數未替換
『壹』 maven編譯錯誤 d lifecycle pha se or a goal
一、問題描述
Windows下,需要將jar包手動導入Maven本地倉庫,使用Power Shell運行命令:
mvn install:install-file -Dfile="E:\Tools\ipdatabase\target\ipdatabase-1.0-SNAPSHOT.jar" -DgroupId=com.ggstar -DartifactId=ipdatabase -Dversion=1.0 -Dpackaging=jar
報錯:
[ERROR] Unknown lifecycle phase ".ggstar". 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, process-test-resources, test-compile, process-test-classes, test, prepare-package, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy, pre-clean, clean, post-clean, pre-site, site, post-site, site-deploy. -> [Help 1][ERROR][ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.[ERROR] Re-run Maven using the -X switch to enable full debug logging.[ERROR][ERROR] For more information about the errors and possible solutions, please read the following articles:[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/
二、問題原因
Power Shell的命令和cmd的命令有不一樣,這個命令在cmd是可以實行的。
三、解決方法
1.在cmd命令行中執行
在含pom.xml文件的根路徑下打開cmd命令行,然後輸入命令
mvn install:install-file -Dfile="E:\Tools\ipdatabase\target\ipdatabase-1.0-SNAPSHOT.jar" -DgroupId=com.ggstar -DartifactId=ipdatabase -Dversion=1.0 -Dpackaging=jar
然後打包成功:
[INFO] Building ipdatabase 1.0-SNAPSHOT[INFO] ------------------------------------------------------------------------[INFO][INFO] --- maven-install-plugin:2.4:install-file (default-cli) @ ipdatabase ---[INFO] Installing E:\Tools\ipdatabase\target\ipdatabase-1.0-SNAPSHOT.jar to E:\Tools\apache-maven-3.3.9\Repository\com\ggstar\ipdatabase\1.0\ipdatabase-1.0.jar[INFO] Installing C:\Users\ADMINI~1\AppData\Local\Temp\mvninstall4727202787532518137.pom to E:\Tools\apache-maven-3.3.9\Repository\com\ggstar\ipdatabase\1.0\ipdatabase-1.0.pom[INFO] ------------------------------------------------------------------------[INFO] BUILD SUCCESS[INFO] ------------------------------------------------------------------------[INFO] Total time: 1.703 s[INFO] Finished at: 2018-10-05T20:40:36+08:00[INFO] Final Memory: 8M/123M[INFO] ------------------------------------------------------------------------
2.在Power Shell下
參數需要添加單引號'',如下命令即可
mvn install:install-file -Dfile="E:\Tools\ipdatabase\target\ipdatabase-1.0-SNAPSHOT.jar" '-DgroupId=com.ggstar' '-DartifactId=ipdatabase' '-Dversion=1.0' '-Dpackaging=jar'
還有不懂的可以關注私聊我,本人10年java開發經驗,相信可以幫助你成為一個優秀的java程序員
『貳』 用maven編譯項目時出現「運行mvn clean install -Dmaven.」問題怎麼辦
在/etc/profile配置java的環境變數: 你的mvn 項目是用哪個版本的jdk.,就要配置那個版本的jdk。
強制保存文件命令:w !sudo tee %
此時在進入項目執行:$ git pull origin master
繼續mvn clean install
『叄』 mvn編譯異常「was cached in the local repository, resolution will not be reattempte
最近編譯livy-release工程,各種異常,加入hdp的relase庫之後,出現了找不到jetty-ssslengine,jetty-util,jetty的1.26.1.hwxjar包和pom文件異常。從其他機器的mvn倉庫一份放入本地倉庫後,編譯出現上述異常。
根據網上搜索的解決方案有如下:
均無法解決問題。
由於找不到(不知道)哪個倉庫下有這些jar包。因此也沒有辦法配置可以找到這些jar包的倉庫
『肆』 如何使用maven在本地編譯打包
檢查是有已經安裝maven工具,cmd窗口中執行mvn命令。檢查已經安裝maven工具(如果不是mvn工程,需要將java工程轉換成mvn工程):
在mvn工程的pom.xml配置文件中指定jdk版本:
在mvn工程的pom.xml配置文件中 <mainClass>指定可執行jar包主類
用cmd進入 cd 到工程目錄下 ,執行如下mvn -DskipTests clean package
mvn編譯完成,提示如下信息:
在工程目錄下找到可執行的jar,如:E:\eclipse_workspace\dictionary_analysis\target\FindCrossWord-0.0.1.jar
通過cmd利用java命令執行此jar包:
E:\eclipse_workspace\dictionary_analysis\target>
java -jar FindCrossWord-0.0.1.jar
『伍』 maven mvn compile 報錯是什麼原因
這提示沒找到pom文件,compile是編譯mvn項目的命令,要在項目的根目錄下執行,我看你是在d盤根目錄執行的,找不到項目,肯定報錯
『陸』 Clang如何處理MSVC的編譯參數
LLVM裡面的Clang已經可以替換MSVC的cl.exe(MSVC的編譯過程的組織程序-driver),作為Visual Studio的獨立工具鏈,能生成PDB文件支持在Visual Studio裡面的源代碼調試。為了支持替換cl.exe,clang構建會生成可執行文件clang-cl.exe,接收cl.exe的大部分參數而在內部轉換成LLVM的參數形式。
雖然看起來是生成了一個單獨的clang-cl.exe,它實際上就是clang.exe的一個副本,如果程序名是clang.exe,還可以在命令行傳遞" --driver-mode=cl "參數啟用cl.exe的參數解析模式。所以clang-cl.exe和clang.exe是一樣的,都接受" --target= i686-pc-windows", 但是為什麼clang-cl.exe卻不能解析" -triple i686-pc-windows"而clang.exe卻可以呢?
程序本身通過檢查自身的文件名(argv[0])來檢測是不是要運行在兼容MSVC cl.exe的模式,如果文件名是"clang-cl.exe",則把對應的DriverMode放到main函數開始處的變數TargetAndMode裡面(ToolChain::)。下面的代碼顯示了對應關系,可以看到把文件名clang.exe改成cl.exe也會有一樣的效果。
在上面從程序名解析出target和mode後,main函數裡面緊接著的代碼檢查了返回的mode和命令行參數,只要以一個滿足則進入 ClangCLMode 。不過這里解析出來的ClangCLMode只用來處理命令行參數的分隔和cl.exe特有的環境變數,包括"CL"和"_CL_"。
再從main函數進入Driver類的對象TheDriver的 BuildCompilation 方法後,會調用 ParseDriverMode方法,裡面會根據程序名重新獲得driver mode(ToolChain::),然後把driver mode字元串傳給下面的 setDriverModeFromOption 方法。這個方法根據傳入的driver mode選項設置成員變數 Mode .
上面的 Driver類的對象 已經知道當前Mode,比如 CLMode ,下面會組織整個編譯過程,包括調用編譯器(clang.exe -cc1)和鏈接器(MSVC的link或者lld-link)。
BuildCompilation緊接著會調用ParseArgStrings。ParseArgStrings調用下面的 ,根據Driver的當前Mode得到include mask和exclude mask兩個掩碼,用於後面(在調用鏈ParseArgString->ParseArg->ParseOneArg的最後的方法ParseOneArg裡面)決定是否接受命令行參數。比如在CLMode下就只會接受ClOption和CoreOption。
那麼CLOption和CoreOption都有哪些具體參數呢?Clang的所有命令行參數選項都定義在llvm_root .td裡面,由tablegen轉成C/C++頭文件而被代碼引用。下面是從裡面截取的target的定義,看到"--target="選項是同時屬於DriverOption和 CoreOption ,而CoreOption在CLMode和非CLMode下均能使用。
以下是"-target"的定義,沒有定義Flags,所以在CLMode下也就不能解析,這也就解釋了最開始"clang-cl.exe"不接受"-triple i686-pc-windows"參數。
『柒』 Hadoop 執行mvn編譯時候報錯。求解。。。在線等急
這個文件解析失敗了,可能是意外改動到了
109行左右,</pluginManagement>這個tag不匹配,估計沒有開始的<pluginManagement>
重新網上下載一個,或者手動修復一下
『捌』 eclipse maven goals參數怎麼寫
eclipse中maven的build裡面 選擇goals就是要選擇需要編譯的工程。
maven項目編譯說明:
未用maven前對於普通的java工程,我們如果修改了.java或配置文件,只要他在classes下,只須保存下,eclipse就會編譯到bin文件夾下。
使用maven後,一般修改了.java或配置文件, eclipse也會幫我們編譯到target/classes下。
但如果你使用了pom.xml下的properties值來替換配置文件里的${},並只修改了pom.xml里的properties的值,那麼eclipse是不會幫我們編譯的。
還需我們手工編譯,方法一使用eclipse maven插件,選擇run as maven build...,在goals里輸入compile(maven 編譯),這樣它才會使用maven編譯,如果想要生成可執行jar包,需要在goals中輸入package
把參數設置到配置文件里。方法二使用maven命令,控制台進入當前工程文件夾,執行mvn compile.或者 maven package。
『玖』 java類明明有構造方法,但是mvn clean install打包還是報無法將類中的構造器應用到給定類型
java類明明有櫻稿構造方法,但是mvn clean install打包還是報無法將類中的構造器應用到給定類型,重啟一次再試試森空,有時候沒有此頌瞎編譯成功。
『拾』 maven用jdk17編譯jar
1
檢查是有已經安裝maven工具,cmd窗口中執行逗纖mvn命令。檢查已經安裝maven工具(如果不是mvn工程,需要將java工程轉換成mvn工程):
2
在mvn工程的pom.xml配山碼仿置文件中指定jdk版本:
3
在mvn工程的pom.xml配置文件中 <mainClass>指定可執行jar包主類
4
用cmd進入 cd 到工程目錄下 ,執行如下mvn -DskipTests clean package
5
mvn編譯完成,提示如下信息:
6
在工程目錄下找到可執行的jar,如:E:\eclipse_workspace\dictionary_analysis\target\FindCrossWord-0.0.1.jar
7
通過cmd利用java命令執行模歷此jar包:E:\eclipse_workspace\dictionary_analysis\target>java -jar FindCrossWord-0.0.1.jar