2017-04-23 95 views
3

當我執行此:錯誤執行Maven原型生成命令創建Opndaylight項目結構

mvn archetype:generate -DarchetypeGroupId=org.opendaylight.controller -DarchetypeArtifactId=opendaylight-startup-archetype \ 
-DarchetypeRepository=http://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ \ 
-DarchetypeCatalog=http://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/archetype-catalog.xml 

我得到了以下錯誤:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-archetype-plugin:3.0.1:generate (default-cli) on project standalone-pom: archetypeCatalog 'http://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/archetype-catalog.xml' is not supported anymore. Please read the plugin documentation for details. -> [Help 1] 

而且help1看起來是這樣的:

[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException 

長期未更新。

首先,我刪除了反斜槓和空格,顯然它沒有工作。 我想這可能是archetypeCatalog的參數,所以我跑了這一點:

mvn archetype:generate -DarchetypeGroupId=org.opendaylight.controller -DarchetypeArtifactId=opendaylight-startup-archetype -DarchetypeCatalog=remote -DarchetypeVersion=1.1.2-Beryllium-SR2 

我得到了這樣的錯誤:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-archetype-plugin:3.0.1:generate (default-cli) on project standalone-pom: The desired archetype does not exist (org.opendaylight.controller:opendaylight-startup-archetype:1.1.2-Beryllium-SR2) -> [Help 1] 

本教程中提到,OpenDaylight保持Maven的中央之外的自己的資料庫,這意味着默認情況下maven無法解析OpenDaylight工件。 所以我做的教程,下面的命令:

cp -n ~/.m2/settings.xml{,.orig} ; \ wget -q -O - https://raw.githubusercontent.com/opendaylight/odlparent/master/settings.xml > ~/.m2/settings.xml 

我甚至試過這樣:

cp -n ~/.m2/settings.xml{,.orig} ; \ wget -q -O - https://raw.githubusercontent.com/opendaylight/odlparent/stable/beryllium/settings.xml > ~/.m2/settings.xml 

的settings.xml的文件看起來是一樣的。 這幾天我見過一些類似的問題。作爲maven和opendaylight的noob,我不知道下一步該怎麼做?我只想生成opendaylight arachetype來啓動烤麪包機。

謝謝你的幫助。 這裏是我的行家inforamtion:

➜ ~ mvn -v 
Apache Maven 3.5.0 (ff8f5e7444045639af65f6095c62210b5713f426; 2017-04-04T03:39:06+08:00) 
Maven home: /usr/local/Cellar/maven/3.5.0/libexec 
Java version: 1.8.0_131, vendor: Oracle Corporation 
Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre 
Default locale: en_US, platform encoding: UTF-8 
OS name: "mac os x", version: "10.11.6", arch: "x86_64", family: "mac" 

回答

-1

與Maven-原型 - 插件3.X這是不可能的了指定倉庫作爲命令行參數(一致性和安全原因)。

所以,你有2種選擇:

+0

mvn org.apache.maven.plugins:maven-archetype-plugin:2.3:生成引腳的版本,但沒有爲我修復。 – TimP

0

隨着Maven Archetype插件3.0.0原型分辨率已經改變。再也不可能通過命令行指定存儲庫,而是使用已經爲Maven指定的存儲庫。這意味着還要考慮鏡像和代理以及存儲庫上的身份驗證。 1.您將刪除-Darchetype目錄& -DarchetypeRepository 2.在您的.m2 /設置中。XML,加

<settings> 
    <mirrors> 
     <mirror> 
     <id>mrm-maven-plugin</id> 
     <name>Mock Repository Manager</name> 
     <url>http://www.mycompany.com/maven-reporistory-manager</url> 
     <mirrorOf>*,!archetype</mirrorOf> 
     </mirror> 
    </mirrors> 

    <profiles> 
     <profile> 
     <id>acme</id> 
     <repositories> 
     <repository> 
      <id>archetype</id> 
      <url>https://www.acme.com/repo</url> 
      <releases> 
      <enabled>true</enabled> 
      <checksumPolicy>fail</checksumPolicy> 
      </releases> 
      <snapshots> 
      <enabled>true</enabled> 
      <checksumPolicy>warn</checksumPolicy> 
      </snapshots> 
     </repository> 
     </repositories> 
    </profile> 
    </profiles> 

    <activeProfiles> 
    <activeProfile>acme</activeProfile> 
    </activeProfiles> 
</settings> 
  • http://maven.apache.org/archetype/maven-archetype-plugin/archetype-repository.html
  • 0

    添加的存儲庫id爲原型是這樣的:

    <repository> 
        <id>archetype</id> 
        <url>https://repository.domain.com/path/to/repo/</url> 
        </repository> 
    

    在我的情況,

    <repository> 
        <id>archetype</id> 
        <url>http://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/</url> 
        </repository> 
    

    基本上,我執行ed without-DarchetypeRepository參數,但將其放在settings.xml中,如上所述。並將-Dchechetypecatalog參數更改爲遠程或將其設置爲空。有用 。