spring ArtifactDescriptorException:无法读取工件描述符
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/39845810/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
ArtifactDescriptorException: Failed to read artifact descriptor
提问by Dev M
I'm trying to do a simple app with Spring. I installed the plugin spring (Spring Tool Suite (STS)) for eclipse. I added Maven dependencies in the file pom.xml.im trying to add same Spring dependencies. i have problem with: Spring-tx, Spring-orm, Spring-beans, and Spring-core
我正在尝试用 Spring 做一个简单的应用程序。我为eclipse安装了插件spring(Spring Tool Suite(STS))。我在文件 pom.xml.im 中添加了 Maven 依赖项,试图添加相同的 Spring 依赖项。我有以下问题:Spring-tx、Spring-orm、Spring-beans 和 Spring-core
My problem is with : spring-tx , spring-orm , spring-beans , spring-core when adding those dependencies, problems appear.
我的问题是: spring-tx , spring-orm , spring-beans , spring-core 添加这些依赖项时,会出现问题。
i tryed to add theme using the view Dependencies Add -> Select Dependency but i can not found Spring-tx and Spring-orm
我尝试使用视图 Dependencies Add -> Select Dependency 添加主题,但我找不到 Spring-tx 和 Spring-orm
pom.xml
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<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>org.sid</groupId>
<artifactId>ebotique</artifactId>
<name>EBotiqueV3</name>
<packaging>war</packaging>
<version>1.0.0-BUILD-SNAPSHOT</version>
<properties>
<java-version>1.6</java-version>
<org.springframework-version>3.2.2.RELEASE</org.springframework-version>
<org.aspectj-version>1.6.10</org.aspectj-version>
<org.slf4j-version>1.6.6</org.slf4j-version>
</properties>
<dependencies>
<!-- Spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${org.springframework-version}</version>
<exclusions>
<!-- Exclude Commons Logging in favor of SLF4j -->
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<!-- AspectJ -->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>${org.aspectj-version}</version>
</dependency>
<!-- Logging -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${org.slf4j-version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>${org.slf4j-version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${org.slf4j-version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.15</version>
<exclusions>
<exclusion>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
</exclusion>
<exclusion>
<groupId>javax.jms</groupId>
<artifactId>jms</artifactId>
</exclusion>
<exclusion>
<groupId>com.sun.jdmk</groupId>
<artifactId>jmxtools</artifactId>
</exclusion>
<exclusion>
<groupId>com.sun.jmx</groupId>
<artifactId>jmxri</artifactId>
</exclusion>
</exclusions>
<scope>runtime</scope>
</dependency>
<!-- @Inject -->
<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version>
</dependency>
<!-- Servlet -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- Test -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.7</version>
<scope>test</scope>
</dependency>
<!-- Hibernate-->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>3.6.0.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>4.1.0.Final</version>
</dependency>
<!-- MySQL Connector-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
<!-- Spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>>${org.springframework-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>>${org.springframework-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>>${org.springframework-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>>${org.springframework-version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-eclipse-plugin</artifactId>
<version>2.9</version>
<configuration>
<additionalProjectnatures>
<projectnature>org.springframework.ide.eclipse.core.springnature</projectnature>
</additionalProjectnatures>
<additionalBuildcommands>
<buildcommand>org.springframework.ide.eclipse.core.springbuilder</buildcommand>
</additionalBuildcommands>
<downloadSources>true</downloadSources>
<downloadJavadocs>true</downloadJavadocs>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
<compilerArgument>-Xlint:all</compilerArgument>
<showWarnings>true</showWarnings>
<showDeprecation>true</showDeprecation>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<configuration>
<mainClass>org.test.int1.Main</mainClass>
</configuration>
</plugin>
</plugins>
</build>
</project>
i'm getting followed errors:
我收到以下错误:
Description Resource Path Location Type
ArtifactDescriptorException: Failed to read artifact descriptor for org.springframework:spring-beans:jar:>3.2.2.RELEASE: ArtifactResolutionException: Could not transfer artifact org.springframework:spring-beans:pom:>3.2.2.RELEASE from/to central (http://repo.maven.apache.org/maven2): C:\Users\MarwenBta\.m2\repository\org\springframework\spring-beans\>3.2.2.RELEASE\spring-beans->3.2.2.RELEASE.pom.ahc985459e75c4648d7 (La syntaxe du nom de fichier, de réperttheitroade ou de volume est incorrecte) pom.xml /EBotiqueV3 line 1 Maven Dependency Problem
ArtifactDescriptorException: Failed to read artifact descriptor for org.springframework:spring-orm:jar:>3.2.2.RELEASE: ArtifactResolutionException: Could not transfer artifact org.springframework:spring-orm:pom:>3.2.2.RELEASE from/to central (http://repo.maven.apache.org/maven2): C:\Users\MarwenBta\.m2\repository\org\springframework\spring-orm\>3.2.2.RELEASE\spring-orm->3.2.2.RELEASE.pom.ahcf3ba8e697e9b4549 (La syntaxe du nom de fichier, de réperttheitroade ou de volume est incorrecte) pom.xml /EBotiqueV3 line 1 Maven Dependency Problem
Missing artifact org.springframework:spring-context:jar:3.2.2.RELEASE pom.xml /EBotiqueV3 line 1 Maven Dependency Problem
ArtifactDescriptorException: Failed to read artifact descriptor for org.springframework:spring-core:jar:>3.2.2.RELEASE: ArtifactResolutionException: Could not transfer artifact org.springframework:spring-core:pom:>3.2.2.RELEASE from/to central (http://repo.maven.apache.org/maven2): C:\Users\MarwenBta\.m2\repository\org\springframework\spring-core\>3.2.2.RELEASE\spring-core->3.2.2.RELEASE.pom.ahc23be8a1b03fa4ea4 (La syntaxe du nom de fichier, de réperttheitroade ou de volume est incorrecte) pom.xml /EBotiqueV3 line 1 Maven Dependency Problem
ArtifactDescriptorException: Failed to read artifact descriptor for org.springframework:spring-tx:jar:>3.2.2.RELEASE: ArtifactResolutionException: Could not transfer artifact org.springframework:spring-tx:pom:>3.2.2.RELEASE from/to central (http://repo.maven.apache.org/maven2): C:\Users\MarwenBta\.m2\repository\org\springframework\spring-tx\>3.2.2.RELEASE\spring-tx->3.2.2.RELEASE.pom.ahca3575630da624133 (La syntaxe du nom de fichier, de réperttheitroade ou de volume est incorrecte) pom.xml /EBotiqueV3 line 1 Maven Dependency Problem
Missing artifact org.springframework:spring-webmvc:jar:3.2.2.RELEASE pom.xml /EBotiqueV3 line 1 Maven Dependency Problem
Missing artifact org.springframework:spring-expression:jar:3.2.2.RELEASE pom.xml /EBotiqueV3 line 1 Maven Dependency Problem
Missing artifact org.aspectj:aspectjrt:jar:1.6.10 pom.xml /EBotiqueV3 line 1 Maven Dependency Problem
Missing artifact org.springframework:spring-web:jar:3.2.2.RELEASE pom.xml /EBotiqueV3 line 1 Maven Dependency Problem
Missing artifact aopalliance:aopalliance:jar:1.0 pom.xml /EBotiqueV3 line 1 Maven Dependency Problem
Missing artifact org.springframework:spring-aop:jar:3.2.2.RELEASE pom.xml /EBotiqueV3 line 1 Maven Dependency Problem
Missing artifact org.springframework:spring-core:jar:3.2.2.RELEASE pom.xml /EBotiqueV3 line 1 Maven Dependency Problem
Missing artifact org.springframework:spring-beans:jar:3.2.2.RELEASE pom.xml /EBotiqueV3 line 1 Maven Dependency Problem
Missing artifact javax.servlet:servlet-api:jar:2.5 pom.xml /EBotiqueV3 line 1 Maven Dependency Problem
Missing artifact javax.inject:javax.inject:jar:1 pom.xml /EBotiqueV3 line 1 Maven Dependency Problem
Missing artifact javax.servlet:jstl:jar:1.2 pom.xml /EBotiqueV3 line 1 Maven Dependency Problem
Missing artifact javax.servlet.jsp:jsp-api:jar:2.1 pom.xml /EBotiqueV3 line 1 Maven Dependency Problem
Missing artifact org.slf4j:jcl-over-slf4j:jar:1.6.6 pom.xml /EBotiqueV3 line 1 Maven Dependency Problem
Missing artifact org.slf4j:slf4j-api:jar:1.6.6 pom.xml /EBotiqueV3 line 1 Maven Dependency Problem
Missing artifact log4j:log4j:jar:1.2.15 pom.xml /EBotiqueV3 line 1 Maven Dependency Problem
Missing artifact org.slf4j:slf4j-log4j12:jar:1.6.6 pom.xml /EBotiqueV3 line 1 Maven Dependency Problem
Missing artifact dom4j:dom4j:jar:1.6.1 pom.xml /EBotiqueV3 line 1 Maven Dependency Problem
Missing artifact commons-collections:commons-collections:jar:3.1 pom.xml /EBotiqueV3 line 1 Maven Dependency Problem
Missing artifact javax.transaction:jta:jar:1.1 pom.xml /EBotiqueV3 line 1 Maven Dependency Problem
Missing artifact org.hibernate:hibernate-commons-annotations:jar:3.2.0.Final pom.xml /EBotiqueV3 line 1 Maven Dependency Problem
Missing artifact org.hibernate:hibernate-entitymanager:jar:3.6.0.Final pom.xml /EBotiqueV3 line 1 Maven Dependency Problem
Missing artifact junit:junit:jar:4.7 pom.xml /EBotiqueV3 line 1 Maven Dependency Problem
Missing artifact antlr:antlr:jar:2.7.6 pom.xml /EBotiqueV3 line 1 Maven Dependency Problem
Missing artifact org.hibernate:hibernate-core:jar:3.6.0.Final pom.xml /EBotiqueV3 line 1 Maven Dependency Problem
Missing artifact javax.validation:validation-api:jar:1.0.0.GA pom.xml /EBotiqueV3 line 1 Maven Dependency Problem
Missing artifact org.hibernate:hibernate-validator:jar:4.1.0.Final pom.xml /EBotiqueV3 line 1 Maven Dependency Problem
Missing artifact mysql:mysql-connector-java:jar:5.1.6 pom.xml /EBotiqueV3 line 1 Maven Dependency Problem
Missing artifact asm:asm:jar:3.1 pom.xml /EBotiqueV3 line 1 Maven Dependency Problem
Missing artifact cglib:cglib:jar:2.2 pom.xml /EBotiqueV3 line 1 Maven Dependency Problem
Missing artifact org.hibernate.javax.persistence:hibernate-jpa-2.0-api:jar:1.0.0.Final pom.xml /EBotiqueV3 line 1 Maven Dependency Problem
Missing artifact javassist:javassist:jar:3.12.0.GA pom.xml /EBotiqueV3 line 1 Maven Dependency Problem
i have also problem applicationContext.xml
我也有问题 applicationContext.xml
class="org.springframework.jdbc.datasource.DriverManagerDataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource"
class="org.springframework.orm.jpa.persistenceunit.DefaultPersistenceUnitManager"
class="org.springframework.orm.jpa.persistenceunit.DefaultPersistenceUnitManager"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"
class="org.springframework.orm.jpa.JpaTransactionManager"
class="org.springframework.orm.jpa.JpaTransactionManager"
the problem: Attribute : class The fully qualified name of the bean's class, except if it serves only as a parent definition for child bean definitions.
问题: 属性 : class bean 类的完全限定名称,除非它仅用作子 bean 定义的父定义。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd">
<bean id="datasource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost:3306/eboutique"></property>
<property name="username" value="eboutique"></property>
<property name="password" value="user"></property>
</bean>
<bean id="persistenceUnitManager"
class="org.springframework.orm.jpa.persistenceunit.DefaultPersistenceUnitManager">
<property name="defaultDataSource" ref="datasource"></property>
<property name="persistenceXmlLocations">
<list>
<value>classpath*:META-INF/persistence.xml</value>
</list>
</property>
</bean>
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="persistenceUnitManager" ref="persistenceUnitManager"></property>
<property name="persistenceUnitName" value="UP_EBOUTIQUE"></property>
</bean>
<bean id="transactionManager"
class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory"></property>
</bean>
<tx:annotation-driven transaction-manager="transactionManager"/>
<context:annotation-config></context:annotation-config>
</beans>
回答by parishodak
Adding repositories in Pom.xml will solve the issue.
在 Pom.xml 中添加存储库将解决该问题。
<repositories>
<repository>
<id>spring-releases</id>
<name>Spring Releases</name>
<url>https://repo.spring.io/libs-release</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>spring-releases</id>
<name>Spring Releases</name>
<url>https://repo.spring.io/libs-release</url>
</pluginRepository>
</pluginRepositories>
回答by Arpit Sharma
Please try the steps in order as it might just be a glitch.
请按顺序尝试这些步骤,因为它可能只是一个小故障。
- Project -> Clean
- Restart Eclipse
- Disable then re-enable dependency management (right-click Maven -> Disable Dependency Management then Maven -> Enable Dependency Management
- Close and Reopen Project
- Project -> Run as -> Maven Build -> Set goals as
clean install
-> Select optionsUpdate Snapshots
Debug Output
Non Recursive
Resolve Workspace Artifacts
-> Apply and Run - Repeat Step 5 after removing dependencies from ~/.m2/repository
- Check that your Maven settings are configured correctly. If you are behind a proxy you'll need to configure the proxy settings in the global or user settings.
- 项目 -> 清洁
- 重启 Eclipse
- 禁用然后重新启用依赖管理(右键单击Maven -> Disable Dependency Management 然后Maven -> Enable Dependency Management
- 关闭并重新打开项目
- 项目 -> 运行方式 -> Maven 构建 -> 将目标设置为
clean install
-> 选择选项Update Snapshots
Debug Output
Non Recursive
Resolve Workspace Artifacts
-> 应用并运行 - 从 ~/.m2/repository 中删除依赖项后重复步骤 5
- 检查您的 Maven 设置是否配置正确。如果您使用代理,则需要在全局或用户设置中配置代理设置。
PS: Post debug output of maven build if it not solved.
PS:如果未解决,则发布 maven build 的调试输出。
回答by Dev M
i solved my problem.
我解决了我的问题。
solution:
解决方案:
i used the Dependencies window or (right-click Maven -> Add Dependency) then i search for spring-core and spring-beans others I have not found.
我使用了依赖项窗口或(右键单击 Maven -> 添加依赖项)然后我搜索了其他我没有找到的 spring-core 和 spring-beans。
and i add
我补充说
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>3.2.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>3.2.2.RELEASE</version>
</dependency>
回答by Khalid Bin Huda
In Bean Configuration xml file add Following with appropriate Aop version.
在 Bean 配置 xml 文件中添加以下具有适当 Aop 版本的内容。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
回答by Martin I. Velasquez
Go to Preferences -> click on "Maven" -> unclick "Do not automatically update dependencies from remote repositories"-> optional click on "automatically update maven projects configuration (experimental)"
转到首选项 -> 单击“Maven”-> 取消单击“不自动更新远程存储库的依赖项”-> 可选单击“自动更新 Maven 项目配置(实验性)”
Thy "unclick" I mentioned above is extremely important if you want your dependencies to work properly!
如果您希望您的依赖项正常工作,我上面提到的“取消点击”非常重要!