Servlet 3.0 API에 대한 Maven 의존관계
어떻게 Maven 2에게 Servlet 3.0 API를 로드하라고 할 수 있나요?
나는 시도했다.
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>3.0</version>
<scope>provided</scope>
</dependency>
http://repository.jboss.com/maven2/을 사용하고 있는데 어떤 저장소가 좋을까요?
부록:
전체 Java EE 6 API 및 다음 설정에 종속되어 작동합니다.
<repository>
<id>java.net</id>
<url>http://download.java.net/maven/2</url>
</repository>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>6.0</version>
<scope>provided</scope>
</dependency>
종속성으로만 Servlet API를 추가하고 싶지만 개별 종속성이 Java EE 6 프로파일로 대체되었다는 "Brabster"가 맞을 수 있습니다.이 가정을 확인할 수 있는 출처가 있습니까?
이것은 최근에 추가된 것 같습니다.
https://repo1.maven.org/maven2/javax/servlet/javax.servlet-api/3.0.1/
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
종속성으로만 Servlet API를 추가하고 싶습니다.
솔직히 왜 그런지는 모르겠지만...
Brabster 개별 종속성은 Java EE 6 프로파일로 대체되었습니다.이 가정을 확인할 수 있는 출처가 있습니까?
Java.net의 maven 저장소는 실제로 WebProfile에 대해 다음과 같은 아티팩트를 제공합니다.
<repositories>
<repository>
<id>java.net2</id>
<name>Repository hosting the jee6 artifacts</name>
<url>http://download.java.net/maven/2</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<version>6.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
이 자에는 Servlet 3.0, EJB Lite 3.1, JPA 2.0, JSP 2.2, EL 1.2, JSTL 1.2, JSF 2.0, JTA 1.1, JSR-45, JSR-250이 포함됩니다.
그러나 내가 아는 바로는 이러한 API가 (java.net 저장소 또는 다른 곳에서) 별도로 배포되지 않을 것이라고 말할 수 있는 것은 없다.예를 들어 JSF 2.0 API는 별도로(java.net 저장소에서) 사용할 수 있습니다.
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>2.0.0-b10</version>
<scope>provided</scope>
</dependency>
그리고 실제로, 당신은javax.servlet-3.0.jar
사용자 저장소에 설치합니다.
또는 Central Maven Repository를 Servlet 3.0 API와 함께 사용할 수 있습니다. 이 API는 Tomcat Server 7.0에도 제공됩니다.x
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-servlet-api</artifactId>
<version>7.0.21</version>
<scope>provided</scope>
</dependency>
여기서 : http://repo2.maven.org/maven2/org/apache/tomcat/tomcat-servlet-api/7.0.21/
이게 제가 쓰는 거예요.이 모든 것은 중앙부에 있고 출처가 있다.
Tomcat 7(Java 7, Servlet 3.0)의 경우
참고 - 서블릿, JSP 및 EL API는 Tomcat에서 제공됩니다.JSTL(사용하는 경우)만 웹 앱에 번들해야 합니다.
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.el</groupId>
<artifactId>javax.el-api</artifactId>
<version>2.2.4</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
Tomcat 8(Java 8, Servlet 3.1)의 경우
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.3.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.el</groupId>
<artifactId>javax.el-api</artifactId>
<version>3.0.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
안타깝게도 종속성으로 javaee-(web)-api를 추가해도 IDE 내에서 Javadoc 또는 source를 찾아볼 수 있는 Servlet API가 제공되지 않습니다.이는 다른 모든 의존관계(JPA, EJB, ...)에서도 마찬가지입니다.Servlet API 소스/javadoc이 필요한 경우 pom.xml에 다음 항목을 추가할 수 있습니다(적어도 JBoss & Glassfish에서는 동작합니다).
저장소:
<repository>
<id>jboss-public-repository-group</id>
<name>JBoss Public Repository Group</name>
<url>https://repository.jboss.org/nexus/content/groups/public/</url>
</repository>
의존관계:
<!-- Servlet 3.0 Api Specification -->
<dependency>
<groupId>org.jboss.spec.javax.servlet</groupId>
<artifactId>jboss-servlet-api_3.0_spec</artifactId>
<version>1.0.0.Beta2</version>
<scope>provided</scope>
</dependency>
종속성에서 Javaee-api를 완전히 제거하고 개별 부품(javax.ejb, javax.faces 등)으로 교체하여 Java EE 6의 모든 부품에 대한 소스와 Javadoc을 가져옵니다.
편집:
다음은 동등한 Glassfish 종속성입니다(사용하는 앱서버에 관계없이 두 종속성은 모두 작동해야 합니다).
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.servlet</artifactId>
<version>3.0</version>
<scope>provided</scope>
</dependency>
Apache Geronimo 프로젝트는 Maven Central repo에 대한 Servlet 3.0 API 의존성을 제공합니다.
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-servlet_3.0_spec</artifactId>
<version>1.0</version>
</dependency>
새로 온 사람들만.
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
9월부터 DZone에서 Servlet 3.0 API의 POM 예를 찾았습니다.
java.net 레포(http://download.java.net/maven/2/)를 사용하는 것이 좋습니다.
Java EE API가 포함되어 있습니다.예를 들어 POM을 사용하는 http://download.java.net/maven/2/javax/javaee-web-api/6.0/은 다음과 같습니다.
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<version>6.0</version>
</dependency>
API 버전 규약은 전체 EE 사양 버전(예: Java EE 6 vs.서블릿 3.0)을 새로운 '프로파일'의 일부로 사용합니다.JAR를 보니 3.0 서블릿이 다 들어있네요맛있게 드세요!
Java EE 6 종속성을 포함하는 편리한 방법(JBoss 권장)이 아래에 나와 있습니다.그 결과 의존관계가 개별적으로 배치되므로(javaee-web-api와 같이 모든 것이 하나의 jar에 있는 것은 아님), 라이브러리의 소스 파일과 javadoc을 maven 저장소에서 다운로드할 수 있습니다.
<properties>
<jboss.javaee6.spec.version>2.0.0.Final</jboss.javaee6.spec.version>
</properties>
<dependencies>
<dependency>
<groupId>org.jboss.spec</groupId>
<artifactId>jboss-javaee-web-6.0</artifactId>
<version>${jboss.javaee6.spec.version}</version>
<scope>provided</scope>
<type>pom</type>
</dependency>
</dependencies>
하려면 , 「」를 해 주세요.dependencyManagement
및 스코프import
사용할 수 있습니다.
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.jboss.spec</groupId>
<artifactId>jboss-javaee6-specs-bom</artifactId>
<version>${jboss.javaee6.spec.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<!-- No need specifying version and scope. It is defaulted to version and scope from Bill of Materials (bom) imported pom. -->
<dependency>
<groupId>org.jboss.spec.javax.servlet</groupId>
<artifactId>jboss-servlet-api_3.0_spec</artifactId>
</dependency>
</dependencies>
이 종속성을 배치하고 "제공된" 범위에 종속성 포함을 선택하는 것을 잊지 마십시오.
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
이 코드를 사용해 보세요...
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>3.0-alpha-1</version>
</dependency>
언급URL : https://stackoverflow.com/questions/1979957/maven-dependency-for-servlet-3-0-api
'programing' 카테고리의 다른 글
Vue2 + Vuex - 저장소에서 성공적으로 설정된 어레이를 렌더링하지 않음 (0) | 2022.07.17 |
---|---|
Java에서 ArrayList 요소의 기존 값을 대체하는 방법 (0) | 2022.07.17 |
페이지 로드 시 vue.js 함수를 호출하는 방법 (0) | 2022.07.17 |
vuex 저장소에서 Axios 인스턴스 속성을 사용하는 방법 (0) | 2022.07.17 |
구조물 또는 유니언의 'unsigned temp:3'은 무엇을 의미합니까? (0) | 2022.07.17 |