2015-05-06 130 views
2

我使用以下Maven命令创建一个新的Maven项目无法在Eclipse中打开一个新创建的Maven项目

mvn archetype:generate -DgroupId=com.company.lib_name -DartifactId=lib_name -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false 

当我在Eclipse中打开这个新建的项目它提供了以下错误:

Could not calculate build plan: Plugin org.apache.maven.plugins:maven-jar- plugin:2.3.2 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.apache.maven.plugins:maven-jar-plugin:jar:2.3.2 
Plugin org.apache.maven.plugins:maven-jar-plugin:2.3.2 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.apache.maven.plugins:maven-jar-plugin:jar:2.3.2: Hostname cannot be null 

我试着日以下:

  1. 删除的.m2目录/存储库和重建项目
  2. 验证了神器在Maven回购
  3. Maven的用户设置指向正确的settings.xml
  4. 项目清理项目
  5. 强制更新n个项目
  6. 命令行
  7. 上存在编译检查回购看到所有的依赖关系被下载
  8. 更改eclipse使用外部maven而不是嵌入 另外我使用的是开普勒和Maven 3.

任何想法'主机名不能为空'指向什么?

这是POM内容

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.company.lib</groupId> 
    <artifactId>liby</artifactId> 
    <packaging>jar</packaging> 
    <version>1.0-SNAPSHOT</version> 
<name>lib</name> 
    <url>http://maven.apache.org</url> 
    <dependencies> 
    <dependency> 
    <groupId>junit</groupId> 
    <artifactId>junit</artifactId> 
    <version>3.8.1</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>jcl-over-slf4j</artifactId> 
     <version>1.7.0</version> 
     <scope>runtime</scope> 
     </dependency> 
     <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-api</artifactId> 
     <version>1.7.0</version> 
     <scope>runtime</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-log4j12</artifactId> 
     <scope>runtime</scope> 
    </dependency> 
    <dependency> 
     <groupId>log4j</groupId> 
     <artifactId>log4j</artifactId> 
     <version>1.2.14</version> 
    </dependency> 
    </dependencies> 
</project> 

而settings.xml中

<settings> 
<profiles> 
    <profile> 
     <id>Blah</id> 
     <repositories> 
      <repository> 
       <id>inhouse</id> 
       <url>http://mavenrepo/maven2_repositories/inhouse</url> 
       <releases> 
        <enabled>true</enabled> 
       </releases> 
       <snapshots> 
        <enabled>true</enabled> 
       </snapshots> 
      </repository> 
      <repository> 
       <id>inhouse_snapshot</id> 
       <url>http://mavenrepo/maven2_repositories/inhouse_snapshot</url> 
       <releases> 
        <enabled>true</enabled> 
       </releases> 
       <snapshots> 
        <enabled>true</enabled> 
       </snapshots> 
      </repository> 
     </repositories> 
     <pluginRepositories> 
      <pluginRepository> 
       <id>inhouse</id> 
       <url>http://mavenrepo/maven2_repositories/inhouse</url> 
       <releases> 
        <enabled>true</enabled> 
       </releases> 
       <snapshots> 
        <enabled>true</enabled> 
       </snapshots> 
      </pluginRepository> 
      <pluginRepository> 
       <id>inhouse_snapshot</id> 
       <url>http://mavenrepo/maven2_repositories/inhouse_snapshot</url> 
       <releases> 
        <enabled>true</enabled> 
       </releases> 
       <snapshots> 
        <enabled>true</enabled> 
       </snapshots> 
      </pluginRepository> 
     </pluginRepositories> 
    </profile> 
</profiles> 
<activeProfiles> 
    <activeProfile>company_name</activeProfile> 
</activeProfiles> 

<mirrors> 
    <mirror> 
     <id>central-to-nexus</id> 
     <mirrorOf>*</mirrorOf> 
     <url>http://mw_maven_repository_readonly/nexus/content/groups/cached</url> 
    </mirror> 
</mirrors> 

+0

我假设你在-DarchetypeArtifactId前有一个空格。 –

+0

你有没有告诉日食有关你的回购?运行:mvn -Declipse。workspace = eclipse:add-maven-repo –

+0

您是否尝试过-DinteractiveMode = true或者只是将该开关切断?可能需要额外的输入 – Vinny

回答

0

谢谢大家的答案。但问题出在Maven的回购网址上。

0

在命令提示:

MVN蚀:日食
MVN清洁安装

这应该下载所有的依赖

+0

试过这个,没有工作 –

1

看来你已经创建了从Maven的模板项目,但你没有进口它在Eclipse之前,使这个项目作为Eclipse项目。

因此,使用maven的命令,你也应该执行下面的命令来使项目作为Eclipse项目

mvn eclipse:eclipse 

它会生成由Eclipse IDE中所需的所有项目文件创建一个新的Maven项目之后。

我还希望在导入Eclipse中的项目之前执行“mvn clean install”

+0

这没有奏效。 –

+0

@ruby试试这个:从命令行执行“mvn eclipse:clean eclipse:eclipse clean install”命令,然后从eclipse中刷新项目。 – Bikku

+0

嗨arin,这似乎没有工作要么 –

相关问题