1. Maven 프로젝트 구성 후 아래 처럼 오류가 발생하는 경우

 

Description	Resource	Path	Location	Type
cvc-elt.1.a: Cannot find the declaration of element 'project'.	pom.xml	/mvn	line 1	Language Servers

Description	Resource	Path	Location	Type
Downloading external resources is disabled.	pom.xml	/mvn	line 3	Language Servers


# 방법1

오류 부분을 마우스 over하면 나오는 tooltip에서 "Force download of 'https://maven.apache.org/xsd/maven-4.0.0.xsd'" 링크를 클릭하면 자동 다운로드 됨




# 방법2
https => http 로 변경

# 기존
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">

# 변경
<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/xsd/maven-4.0.0.xsd">






eclipse에서 maven project를 생성하면 아래처럼 버전이 낮은 프로젝트가 생성된다.
    - JRE 버전 : 1.5
    - Dynamic Web Module (web.xml) 버전 : 2.3

프로젝트 Properties > Project Facets 에서 Dynamic Web Module를 3.0으로 변경하면
"Cannot change version of project facet Danymic Web Module to 3.0" 이란 메시지가 나오면서 변경이 안된다.

1. web.xml 변경 (Dynamic Web Module 2.3 -> 3.0)

Servlet 4.0
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0">
    <display-name>Archetype Created Web Application</display-name>
</web-app>

Servlet 3.1
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">
    <display-name>Archetype Created Web Application</display-name>
</web-app>

Servlet 3.0
<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
    <display-name>Servlet 3.0 Web Application</display-name>
</web-app>

Servlet 2.5
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
    <display-name>Archetype Created Web Application</display-name>
</web-app>

Servlet 2.4
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" id="servlet-2_4" version="2.4">
    <display-name>Servlet 2.4 Web Application</display-name>
</web-app>

Servlet 2.3
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
    <display-name>Servlet 2.3 Web Application</display-name>
</web-app>

Servlet 2.2
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
<web-app>
    <display-name>Servlet 2.2 Web Application</display-name>
</web-app>


2. pom.xml에 build 추가

<properties>
    <jdk.version>1.7</jdk.version>
</properties>

<build>
        <finalName>${project.name}</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.3</version>
                <configuration>
                    <source>${jdk.version}</source>
                    <target>${jdk.version}</target>
                      <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
</build> 


3. 프로젝트 우클릭 > Maven > Update Project 클릭

4. 프로젝트 Facet 변경
    - 프로젝트 Properties > Project Facets 에서 Dynamic Web Module을 3.0으로, Java 1.7 변경
    위 방법으로 할 때
    "Cannot change version of project facet Danymic Web Module to 3.0"이란 메시지가 나오는 경우
    ==> Navigator에서 프로젝트/.settings/org.eclipse.wst.common.project.facet.core.xml 파일 직접 수정

<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
  <fixed facet="wst.jsdt.web"/>
  <installed facet="java" version="1.7"/>
  <installed facet="jst.web" version="3.0"/>
  <installed facet="wst.jsdt.web" version="1.0"/>
</faceted-project> 


5. Maven Dependencies를 Deployment에 추가
프로젝트 Properties > Deployment Assembly 에서 Add 클릭 - Java Build Path Entries 선택 - Maven Dependencies 선택

6. 프로젝트 우클릭 > Maven > Update Project 클릭


※ 참고 (Tomcat / Servlet / Java Specifications)
http://tomcat.apache.org/whichversion.html

Servlet Spec 

 JSP Spec

 EL Spec

 WebSocket Spec

 Apache Tomcat version

 Actual release revision

 Support JavaEE Versions

 Support JavaSE Versions

 Memo

 4.0

 TBD (2.4?)

 TBD (3.1?)

 TBD (1.2?)

 9.0.x

 None

  8 and later

 


 3.1

 2.3

 3.0

 1.1

 8.0.x

 8.0.18

  7 and later

 

Non-blocking I/O, HTTP protocol upgrade mechanism


 3.0

 2.2

 2.2

 1.1

 7.0.x

 7.0.57

 6 and later
(WebSocket 1.1 requires 7 or later)

 JavaSE 6

JSR 315, Ajax 대응 비동기 지원, 어노테이션에 의한 개발편의성, web.xml 없는 개발 및 배포

 2.5

 2.1

 2.1

 N/A

 6.0.x

 6.0.43

 5 and later

 J2SE 5.0

  JSR 154, Requires J2SE 5.0, supports annotations

 2.4

 2.0

 N/A

 N/A

 5.5.x (archived)

 5.5.36 (archived)

  1.4 and later

 J2SE 1.3

 JSR 154, web.xml uses XML Schema

 2.3

 1.2

 N/A

 N/A

 4.1.x (archived)

 4.1.40 (archived)

 1.3 and later

 J2SE 1.2

 Addition of Filters

 2.2

 1.1

 N/A

 N/A

 3.3.x (archived)

 3.3.2 (archived)

 1.1 and later

 J2SE 1.2

 Becomes part of J2EE, introduced independent web applications in .war files





출처 : http://pirrip.tistory.com/148

■ 이클립스

1. 메뉴에서 windows > show view > other > Mavn > Maven Repositories 를 선택

2. Maven Repositories 화면의 Global Repositories를 확장해서 보면 central repository가 나오는데 여기서 full index enabled를 체크해주고 rebuild index를 실행시킨다. (한 10~30분 정도 걸리는 듯)

 

3. add dependency 화면에서 원하는 jar를 검색하면 파일이 나오고 선택하면 자동으로 pom.xml에 추가되고 다운로드 된다 ^^

 - add dependency 화면을 못찾겠다면 열심히 뒤져 보도록 ㅋㅋ

 

출처 : http://devday.tistory.com/entry/ArtifactDescriptorException-Failed-to-read-artifact-descriptor-for-xxx

Maven 프로젝트 체크아웃 시 다음과 같은 에러에 직면할 수 있다.

ArtifactDescriptorException: Failed to read artifact descriptor for org.apache.commons:com.springsource.org.apache.commons.logging:jar:1.1.1: ArtifactResolutionException: Failure to transfer org.apache.commons:com.springsource.org.apache.commons.logging:pom:1.1.1 from http://repository.springsource.com/maven/bundles/release was cached in the local repository, resolution will not be reattempted until the update interval of com.springsource.repository.bundles.release has elapsed or updates are forced. Original error: Could not transfer artifact org.apache.commons:com.springsource.org.apache.commons.logging:pom:1.1.1 from/to com.springsource.repository.bundles.release (http://repository.springsource.com/maven/bundles/release): No route to host to http://repository.springsource.com/maven/bundles/release/org/apache/commons/com.springsource.org.apache.commons.logging/1.1.1/com.springsource.org.apache.commons.logging-1.1.1.pom    pom.xml    /spring.test    line 1    Maven Dependency Problem

or


Received fatal alert: protocol_version



이 경우 다음과 같이 한다.

Maven -> Update Dependencies

다음을 체크하고, OK 버튼을 클릭한다.

Force Update of Snapshots/Releases


Java 1.7을 사용해서 이클립스나 JDK 를 실행했을 때에는 위와 같은 방법으로도 되지 않느다.

방법1) 이클립스 기동을 1.8 이상으로 한다.

- eclipse.ini 수정

-vm
../openjdk-1.8.0.242-1.b08/bin/javaw.exe
-startup
... (생략) ...




방법2) JVM 옵션에 TLSv1.2 protocol을 추가한다.

- eclipse.init 수정

... (생략) ...
-Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2
-Xms40m
... (생략) ...



+ Recent posts