mvn archetype:generate不起作用 - 找不到前缀'archetype'的插件

Arr*_*Cen 26 maven-2

我想使用现有的原型构建一个简单的项目.但我不能跑,mvn archetype:generate因为它一直告诉我以下信息

[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]
Run Code Online (Sandbox Code Playgroud)

我正在使用MS Windows并且settings.xml在我的〜/ .m2文件夹中没有使用任何内容,所有内容都是全新的.任何人都可以帮我搞清楚吗?

Jes*_*ebb 22

另一件可能出错的事情是你的机器在防火墙或代理后面,所以你的机器无法击中http://repo1.maven.org/maven2.尝试直接在浏览器中访问此URL或测试是否能够发出请求.

  • @JesseWebb我可以访问http://repo1.maven.org/maven2,但仍然遇到同样的错误.它是导致问题的防火墙吗?我确实更改了setting.xml文件,但仍然没有用 (3认同)
  • 我能够访问repo1.maven.apache.org/maven2,但无法访问repo.maven.apache.org/maven2,后者在错误消息中指定.怎么解决这个问题? (2认同)

Jes*_*ebb 15

您应该用于生成具有原型的项目的命令是......

mvn archetype:generate
Run Code Online (Sandbox Code Playgroud)

您在问题中发布的命令是错误的(错过了原型中的第一个'e').我认为这只是一个字母错误,但因为您发布的错误原型拼写正确.

我相信如果您尝试从已经包含pom.xml文件的目录中执行此命令,则会发生此错误.它将尝试在现有pom.xml文件中找到原型插件配置.

在空目录中再次尝试该命令,或者至少在没有pom.xml文件的目录中尝试该命令,它应该可以工作.


tej*_*lai 10

如果您位于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>
Run Code Online (Sandbox Code Playgroud)


Pav*_*adi 5

这是防火墙的问题.要检查防火墙是否已打开:

单击开始 - >单击运行 - >键入wscui.cpl - >单击确定.在Windows安全中心 - >单击安全性如果网络防火墙网络防火墙处于"打开"状态,则需要为maven设置代理.

转到/ conf - >使用notepad取消注释代理打开settings.xml(如果你不记得代理设置你可以在webbrowser中检查你的使用)

<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>
Run Code Online (Sandbox Code Playgroud)

您可以将用户名和密码字段留空,并仅设置主机和端口.