无法在eclipse中打开新创建的Maven项目

Unable to open a newly created Maven project in eclipse

我使用以下 maven 命令创建了一个新的 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/repository 并重建了项目
  2. 已验证工件存在于 maven 存储库中
  3. Maven 用户设置指向正确的 settings.xml
  4. 项目在命令行编译
  5. 清理了项目
  6. 强制更新项目
  7. 检查存储库以查看所有依赖项都已下载
  8. 更改 eclipse 以使用外部 maven 而不是嵌入 我也在使用 Kepler 和 Maven 3.

知道 'hostname cannot be null' 指的是什么吗?

这是 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>

在命令提示符下:

mvn eclipse:eclipse
mvn 全新安装

这应该下载所有依赖项

看来您是从 Maven 模板创建的项目,但在将其导入 Eclipse 之前没有将该项目作为 Eclipse 项目。

所以在使用maven命令创建一个新的maven项目后,你还应该执行下面的命令使项目成为一个Eclipse项目

mvn eclipse:eclipse

它将生成 Eclipse 所需的所有项目文件IDE。

我也更喜欢在 Eclipse 中导入项目之前执行 "mvn clean install"

谢谢大家的回答。但问题出在 Maven 存储库 url。