2012-05-16 44 views
1

下载神器Maven的编译器插件,我创建了一个Maven项目,并希望Java编译器版本更改为1.6,所以我增加了FF:无法从仓库

<build> 
    <plugins> 
     <plugin> 
      <artifactId>org.apache.maven.plugins</artifactId> 
      <groupId>maven-compiler-plugin</groupId> 
      <version>2.3.2</version> 
      <configuration> 
       <source>1.6</source> 
       <target>1.6</target> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

当我运行任何行家日食中的目标,它的工作原理。但是当我在终端运行时,我得到了错误:

Project ID: maven-compiler-plugin:org.apache.maven.plugins 

Reason: POM 'maven-compiler-plugin:org.apache.maven.plugins' not found in repository: Unable to download the artifact from any repository 

    maven-compiler-plugin:org.apache.maven.plugins:pom:2.3.2 

from the specified remote repositories: 
    central (http://repo1.maven.org/maven2), 
    apache.repo (https://repository.apache.org/content/repositories/releases), 
    jboss.repo.deprecated (https://repository.jboss.org/nexus/content/repositories/deprecated), 

任何想法是什么原因造成这个问题?

我能够通过更新到maven3来解决这个问题。但我现在的问题是,虽然我指定maven-compiler-plugin版本为2.4,但我仍然在日志中看到2.3.2。

回答

0

从存储库安装maven 3并在/ etc/environment中添加maven3 home之后,我忘了做的是重启我的机器,然后运行。

我的/ etc /环境现在看起来像:

M3_HOME="/home/edward/java/apache/maven-3.0.4" 
MAVEN_HOME="/home/edward/java/apache/maven-3.0.4" 
M3="home/edward/java/apache/maven-3.0.4" 

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/edward/java/apache/maven-3.0.4" 

这里是我如何卸载和安装Maven 3: http://czetsuya-tech.blogspot.com/2012/05/how-to-install-maven-3-in-ubuntu-1110.html

+0

安装Maven后,您不需要重新启动计算机。 – Tristan

2

如果Eclipse和命令行创建不同的结果,那么它们使用不同的本地Maven存储库。缺省值是$HOME/.m2/repository/。所以第一步是找出哪一个(命令行或Eclipse)使用不同的本地缓存以及为什么。

下一个问题是为什么下载失败。通常的原因是Maven尝试下载并出现错误。 Maven会记住这个错误,不要再试一次。要强制它再次尝试,您必须删除文件夹$M2_REPO/repository/org/apache/maven/plugins/maven-compiler-plugin/2.3.2/

最后,当您配置2.4但在日志中看到2.3.2时,您要么为构建的POM中的一个构建错误的项目,而要覆盖编译器插件的版本。

要避免的问题是这样,使用父POM,你把所有的版本dependencyManagement(依赖项)和pluginManagement(用于插件)的元素。这样,您将永远不必在模块POM或从其中继承的其他项目中定义一个版本。

3

您的groupId和artifactId是相反的。

+0

的顺序并不重要,我认为。 – czetsuya

+1

这不是他们列出的顺序是问题。这就是你在groupID下有artifcatID列表,反之亦然。您需要切换值。 –