我想使用现有的原型构建一个简单的项目。但我无法运行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]
我使用的是MS Windows,并且在我的〜/ .m2文件夹中没有使用任何settings.xml
,所有内容都是全新的。任何人都可以帮我解决一下吗?
答案 0 :(得分:19)
另一件可能出错的事情是您的计算机位于防火墙或代理服务器后面,因此您的计算机无法点击http://repo1.maven.org/maven2
。尝试直接在浏览器中访问此URL或测试是否能够发出请求。
答案 1 :(得分:15)
您应该用于生成具有原型的项目的命令是......
mvn archetype:generate
您在问题中发布的命令错误(错过了原型中的第一个'e')。我认为这只是一个错字,但因为您发布的错误原型正确拼写错误。
我相信如果您尝试从已经包含pom.xml
文件的目录执行此命令,则会发生此错误。它将尝试在现有pom.xml
文件中找到原型插件配置。
在空目录中再次尝试该命令,或者至少在没有pom.xml
文件的目录中尝试该命令,它应该可以正常工作。
答案 2 :(得分: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>
答案 3 :(得分:5)
这是防火墙的问题。要检查防火墙是否已打开:
点击开始 - &gt;点击运行 - &gt;输入wscui.cpl - &gt;单击确定。 在Windows安全中心 - &gt;单击安全性 如果网络防火墙“开启”,则需要为maven设置代理。
转到/ conf - &gt;用记事本打开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>
您可以将用户名和密码字段留空,只设置主机和端口。
答案 4 :(得分: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
答案 5 :(得分:1)
maven中的代理设置 转到apache-maven-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>
就在(代理人)之后。
现在根据您的代理设置进行更改 在我的情况下,它看起来像以下
<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 archetype:generate ,然后运行并下载
答案 6 :(得分:1)
我用这个问题解决了2天,我检查了代理,从conf文件夹复制了settings.xml,删除了用户本地.m2文件夹,从eclipse中出来并直接安装了maven并尝试了。以上都不起作用。
Finallay通过将Java home form 1.7升级到1.8解决了该问题。我的Maven版本是 Apache Maven 3.6.3 。
Maven应该针对特定问题报告适当的错误,但不是。
在此线程中,投票赞成对Java升级的建议,此前他们对此不赞成。
答案 7 :(得分:0)
在我的情况下,解决方案只是运行mvn archetype:在用户配置文件下以安全模式生成。之后我可以在正常启动时运行它。
答案 8 :(得分:0)
我解决了这个问题,在创建项目时禁用防病毒软件一段时间。
答案 9 :(得分:0)
在Maven 3中也遇到了同样的问题。我刚刚从jdk7升级到jdk8,问题已解决
答案 10 :(得分:0)
当将Maven 3.6.1与jdk 1.7.40一起使用时,我也面临相同的问题。
要解决此问题,我只需将我的JDk版本更新为1.8.241。
我希望这会对您有所帮助。
答案 11 :(得分:0)
由于Apache Maven存储库URL在NetBeans 8.2或更低版本中已从http://repo.maven.apache.org/maven2/更新为https://repo.maven.apache.org/maven2/,因此我们面临此问题。
那有什么解决方案?
解决方案1:- 用户终端以下载更新的Maven依赖项在Maven.Apache.Org
上查看本指南解决方案2:- 更新您的NetBeans,移至Apache NetBeans 11
答案 12 :(得分:-1)
如果此警告伴随警告:
Received fatal alert: protocol_version
然后检查您的Java版本。通过将Java版本从7升级到10,我能够解决此问题。
答案 13 :(得分:-1)
有同样的问题,对我有用的是重新安装java
sudo yum install java
查找Java的安装路径,可以使用which java
或whereis java
或sudo find / -name javac
对我来说是/usr/lib/jvm/java-11-amazon-corretto.x86_64/bin
sudo vi ~/.bashrc
在行下方添加
export PATH=$PATH:/usr/lib/jvm/java-11-amazon-corretto.x86_64/bin
来源.bashrc
,然后尝试输入命令-mvn archetype:generate
。
答案 14 :(得分:-2)
我有同样的问题。根本原因:键入mvn generate:archetype而不是archetype:generate。
mvn archetype:generate - 是正确的方式。