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作为依赖关系,但“Brabster”可能是正确的,单独的依赖关系已被Java EE 6configuration文件取代。 有一个来源证实了这个假设吗?
我宁愿只添加Servlet API作为依赖项,
说实话,我不知道为什么,但不介意…
Brabster分离的依赖关系已被Java EE 6configuration文件所取代。 有一个来源证实了这个假设吗?
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>
这个jar包括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
,并把它安装在你自己的仓库中。
这似乎是最近添加的:
http://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>
或者,您也可以使用中央Maven存储库和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/
不幸的是,将javaee-(web)-api作为依赖项添加,并不会为您提供Javadoc或Source以供Servlet Api从IDE中浏览它们。 如果您需要Servlet API sources / javadoc,则可以将以下内容添加到您的pom.xml(至less适用于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,…)replace它以获取Java EE 6所有部分的源代码和Javadoc。
编辑:
这里是相当于Glassfish的依赖关系(尽pipe这两个依赖关系都可以工作,不pipe你使用哪个应用服务器)。
<dependency> <groupId>org.glassfish</groupId> <artifactId>javax.servlet</artifactId> <version>3.0</version> <scope>provided</scope> </dependency>
这是我使用的。 所有这些都在中央,并有来源。
对于Tomcat 7(Java 7,Servlet 3.0)
注 – Tomcat中提供了Servlet,JSP和EL API。 只有JSTL(如果使用)需要与Web应用程序捆绑在一起。
<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>
Apache Geronimo项目在Maven Central中提供了一个Servlet 3.0 API依赖关系:
<dependency> <groupId>org.apache.geronimo.specs</groupId> <artifactId>geronimo-servlet_3.0_spec</artifactId> <version>1.0</version> </dependency>
从9月份开始,我在DZone上为Servlet 3.0 APIfind了一个示例POM。
build议您使用java.net库, url为http://download.java.net/maven/2/
那里有Java EE的API,例如http://download.java.net/maven/2/javax/javaee-web-api/6.0/和POM,看起来好像他们可能是你在做什么之后:;
<dependency> <groupId>javax</groupId> <artifactId>javaee-web-api</artifactId> <version>6.0</version> </dependency>
我猜测,API的版本约定已经改变,以匹配整个EE规范(即Java EE 6与Servlets 3.0)的版本,作为新“configuration文件”的一部分。 查看JAR,看起来像所有的3.0 servlet的东西在那里。 请享用!
只是为了新人。
<dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency>
下面演示一个方便的方法(JBoss推荐)来包含Java EE 6依赖关系。 因此,依赖关系是分开放置的(不像javaee-web-api中的所有jar文件),可以从maven仓库下载库的源文件和javadoc。
<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>servlet-api</artifactId> <version>3.0-alpha-1</version> </dependency>
- java.lang.IllegalStateException:不在FX应用程序线程上; currentThread =线程4
- 无法为JSP编译类:无法parsingtypesjava.util.Map $ Entry。 它是从所需的.class文件间接引用的
- ProcessBuilder:转发已启动的进程的stdout和stderr,而不阻塞主线程
- 学习Web开发:Django vs Node vs Rails vs其他
- 如何在Java和Android开发中使用WeakReference?
- 如何在Netbeans中自动导入?
- 我们如何使用Hibernate对行进行计数?
- 乔达时间:每周的第一天?
- Double.MIN_NORMAL和Double.MIN_VALUE之间的区别?