无法在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
我尝试了以下方法:
- 删除了 .m2/repository 并重建了项目
- 已验证工件存在于 maven 存储库中
- Maven 用户设置指向正确的 settings.xml
- 项目在命令行编译
- 清理了项目
- 强制更新项目
- 检查存储库以查看所有依赖项都已下载
- 更改 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。
我使用以下 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
我尝试了以下方法:
- 删除了 .m2/repository 并重建了项目
- 已验证工件存在于 maven 存储库中
- Maven 用户设置指向正确的 settings.xml
- 项目在命令行编译
- 清理了项目
- 强制更新项目
- 检查存储库以查看所有依赖项都已下载
- 更改 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。