2011-06-24 18 views
19

我想使用現有的原型構建一個簡單的項目。但是,隨着它不斷告訴我下面的信息mvn archetype:生成不起作用 - 找不到前綴'archetype'的插件

[ERROR] No plugin found for prefix 'archetype' in the current project and in the 
plugin groups [org.apache.maven.plugins, org.codehaus.mojo] available from the 
repositories [local (C:\Documents and Settings\ccen\.m2\repository), central (ht 
tp://repo1.maven.org/maven2)] -> [Help 1] 

我使用MS Windows和沒有用在我的〜/ .m2目錄文件夾的任何settings.xml和所有的東西都是全新的,我不能運行mvn archetype:generate。任何人都可以幫我弄清楚嗎?

回答

17

可能出錯的另一件事是您的機器位於防火牆或代理的後面,因此您的機器無法擊中http://repo1.maven.org/maven2。嘗試直接在瀏覽器中訪問此URL或測試您是否能夠提出請求。

+0

是的,我經歷了它。我需要在我的公司內部配置中央存儲庫的鏡像。謝謝你的幫助! –

+0

我很高興聽到解決這個問題。我的公司使用Nexus(http://nexus.sonatype.org/)作爲Maven Central的本地鏡像。 Nexus能夠被配置爲下載任何它沒有的工件,所以它下次將有它,這是非常方便的,所以你不必一次下載所有的東西。 –

+0

@JesseWebb我可以訪問http://repo1.maven.org/maven2, 但仍然收到相同的錯誤。 它是導致問題的防火牆嗎?我沒有改變setting.xml文件,但仍然沒有好的 – JavaQuest

14

你應該使用產生了一個項目的原型是命令

mvn archetype:generate 

你在你的問題發佈的命令是錯誤的(缺少原型的第一個「E」)。我認爲這只是SO中的一個錯字,因爲你發佈的錯誤有原型拼寫正確。

我相信這個錯誤會發生,如果你試圖從一個目錄中已經有一個pom.xml文件執行此命令。它會嘗試在現有的pom.xml文件中查找原型插件配置。

再次嘗試在空目錄中的命令,或者至少在一個沒有pom.xml文件,它應該工作。

+0

嗨Gweebz,是的,這是一個錯字,我用mvn archetype:generate,它在一個沒有任何pom.xml的空目錄中,是否有可能我無法訪問repo1.maven.org/maven2? –

+0

錯字太...儘管我以爲你一定是在開玩笑,因爲如果你拼錯一個標誌(參數)的任何程序,它應該給你「程序未知」。看來maven有archtype和archEtype標誌? – luigi7up

+0

廢話:)你是對的! – phoad

9

如果您位於coporate防火牆後面,請使用/ conf目錄 下的「settings.xml」配置代理設置用戶名,密碼,主機&需要提供端口值。

| 
<proxy> 
    <id>optional</id> 
    <active>true</active> 
    <protocol>http</protocol> 
    <username>proxyuser</username> 
    <password>proxypass</password> 
    <host>proxy.host.net</host> 
    <port>80</port> 
    <nonProxyHosts>local.net|some.host.com</nonProxyHosts> 
</proxy> 

2

與Windows(Vista中,Windows 7起)的另一個問題是,在命令提示符下應當根據管理權限運行(右鍵單擊命令提示符快捷方式,選擇「運行廣告管理員」如果UAC打開),那麼只需在執行mvn archetype之前以管理員身份運行命令提示符:generate。

我在使用以下命令在windows 7下創建vaadin 7項目時遇到了此問題。

mvn archetype:generate -DarchetypeGroupId=com.vaadin -DarchetypeArtifactId=vaadin-archetype-application -DarchetypeVersion=7.1.8 -DgroupId=im.sma.testproject -DartifactId=testproject -Dversion=1.0 -Dpackaging=war 
  • SMA
5

這是您的防火牆問題。檢查防火牆是否開啓:

單擊開始 - >單擊運行 - >鍵入wscui.cpl - >單擊確定。 在Windows安全中心 - >單擊安全 如果網絡工作網絡防火牆處於「打開」狀態,則需要爲maven設置代理。

轉到/ conf - >打開設置。XML的記事本 取消註釋代理(如果你不記得代理設置U可以在網頁瀏覽器檢查ü[R使用)

<proxies> 
    <proxy> 
     <id>optional</id> 
     <active>true</active> 
     <protocol>http</protocol> 
     <username></username> 
     <password></password> 
     <host>www-proxy.us.oracle.com</host> 
     <port>80</port> 
     <nonProxyHosts></nonProxyHosts> 
    </proxy> 
</proxies> 

您可以將用戶名和pwd領域的空白,並設置唯一的主機和端口。

+0

主機和端口可以在瀏覽器的網絡設置(局域網設置)中找到 – Vishal

0

在我的情況下,解決方案只是運行mvn archtype:在用戶配置文件下以安全模式生成。之後,我可以在正常啓動時運行它。

1
  • 要添加Venerik的回答我會爲像我這樣天真的用戶細說一下;在行家

代理設置到Apache的行家-3.3.9 \ conf文件夾,找到的settings.xml 在任何文本編輯器打開它 去的代碼看起來像塊下面

<proxies> 
<!-- proxy 
| Specification for one proxy, to be used in connecting to the network. 
| 
<proxy> 
    <id>optional</id> 
    <active>true</active> 
    <protocol>http</protocol> 
    <username>proxyuser</username> 
    <password>proxypass</password> 
    <host>proxy.host.net</host> 
    <port>80</port> 
    <nonProxyHosts>local.net|some.host.com</nonProxyHosts> 
</proxy> 
--> 
</proxies> 
  • 現在,通過它只是後

(PROXI切割並 粘貼從取消註釋(代理... /代理)的代碼ES)。

現在根據你的代理服務器設置 在我的情況下改變它看起來像下面

<proxies> 
    <proxy> 
     <id>optional</id> 
     <active>true</active> 
     <protocol>http</protocol>  
     <host>authproxy.serc.iisc.ernet.in</host> 
     <port>3128</port> 
     <nonProxyHosts>local.net|some.host.com</nonProxyHosts> 
    </proxy> 
    <!-- proxy 
    | Specification for one proxy, to be used in connecting to the  network. 
| 
    --> 
    </proxies> 

現在試着運行MVN原型:產生,它應該運行,並下載

0

我解決了這個問題項目創建時禁用防病毒幾次。

Click here how to do that with avast

0

我有同樣的問題。根本原因:鍵入mvn generate:archetype改爲archetype:generate。
mvn archetype:generate - 是正確的方法。

+1

這不是一個答案。 –

相關問題