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

标签 java eclipse maven build workspace

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

最佳答案

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

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

mvn eclipse:eclipse

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

我也更喜欢在将项目导入 Eclipse 之前执行“mvn clean install”

关于java - 无法在eclipse中打开新创建的Maven项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30080891/

相关文章:

java - 无法从 jar 导入类

java - ADT - intelatom 无法选择

java - 打开文件并访问特定索引处的特定字符

java - 如何在 Eclipse 中将顶级类或接口(interface)重构为内部类或接口(interface)?

java - Eclipse 生成的方法参数具有不合理的名称

maven - 如何使用(引用)传递依赖版本?

java - 当服务器出现时间延迟时,如何避免 Android 中的 ANR 响应?

Java Play 框架 - NoClassDefFoundError : play/Configuration

java - 服务器启动时监听器类未执行 || Tomcat || eclipse

java - Maven指向JDK的错误目录