您的位置:首页 > 其它

maven的动态web项目从搭建到运行完整示例(dark亲测可用)

2017-08-01 16:45 369 查看
原文地址点击此处

当前eclipse版本为 neon3 、jdk为1.8.25 、tomcat为8.5

需求表均同spring案例

此处只是使用maven

注意,以下所有需要建立在你的eclipse等已经集成配置好了maven了,说白了就是新建项目的时候已经可以找到maven了

没有的话需要安装maven

1.新建maven项目,由于当前版本的eclipse自带maven插件,如下图所示。如果没有请自行百度安装maven插件



2,进入maven项目之后,点击next



选择webapp之后  next



输入两个id  package可以不写,是它默认帮你新建一个包,不写没关系



会生成一个这样目录的项目



2,配置maven

首先新建几个文件夹

2.1 添加Source文件夹

接下来需要添加

src/main/java

src/test/java 

src/test/resources三个文件夹

右键项目根目录点击New -> Source Folder,

建出这三个文件夹。注意不是建普通的Folder,而是Source Folder

项目或者文件加上右键 new  sourceFolder,正常情况下是没有问题的

如果出现了下面的这情况,其实是真的存在的只是我们看不到



项目右键属性





修改jdk为你使用的jdk,比如我自己的就是1.8.025



设置完毕之后自然会发现src/main/java这个source folder出现啦。

然后看一下,src/main/sources、src/test/java、src/test/resources这三个哪个没有就建哪个,效果如下



2.2 更改class路径

右键项目,Java Build Path -> Source

下面应该有4个文件夹。src/main/java,src/main/resources,src/test/java ,src/test/resources。

双击每个文件夹的Output folder,选择路径。

src/main/java,src/main/resources,选择target/classes;

src/test/java ,src/test/resources, 选择target/test-classes;

选上Allow output folders for source folders.(如果没有选上的话)



点击左侧属性  project Facets,想要切换成3.1发现报错



这是因为当前版本的eclipse在新建项目的时候,默认使用maven-artchetype-webapp

这个的catalog比较老,对应的servlet还是2.3的





<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" 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"> 
<display-name>Archetype Created Web Application</display-name>

</web-app>


打开当前项目对应的workspace,找到当前工程文件夹下的.settings,会看到一些文件



将org.eclipse.jdt.core.prefs中编译器的版本的1.5改为1.8(或者你自己手中的jdk的版本亦可)





同时修改下面的文件的java版本和jst.web的版本





重新打开属性 project Facets,看到这个地方已经修改成3.1; 勾选上tomcat

tomcat的配置就不在这里说明了。不过有的eclipse的版本可能比较老,不支持tomcat8.5,这个需要下载新版



项目工程创建完成

new 一个server

启动之后看看有无报错,目前没有。打开默认的欢迎index.jsp页面,如下所示,搞定



2017-08-02补充

书接上文

话说eclipse maven工程可以自动添加依赖设置

maven工程可以在线搜索依赖的jar包,还是非常方便的

但是有的时候可能还需要设置下





如上图所示,一般在第一个红框的位置输入你要找的jar包,它会自动帮你找到比较新的几个版本来使用的

如果你想用老版本,可以从下图中的网站中搜索你要的jar包,然后会给你列出来一堆的可用版本,你找到一各之后,把下图的最下面一个红框中的内容复制下来,考到pom.xml文件的依赖那部分即可。



如果遇到eclipse不能在线搜索jar包 报错

如果搜索不到内容,或者有报错信息(index downloads are disabled ,search results may be incomplete)

windows  preference   maven   勾选上









如上图,rebuild一下之后就可以搜索了

添加了之后,顺手更新了下项目(注意,不是必须要做的哈,只是我手欠了)不过你早晚或许都会需要更新下



然后捏

尼玛,报错了....



想了一下不应该啊,都修改好了的

回头一看

我的jdk版本,还有eclipse的一些配置,都尼玛改回来了,还原了....





肿么了这是?

忘记设置了!!!!!

maven update project后版本还原,jdk还原了!

Maven 3.0 source和target的默认设置都是1.5,与运行Maven时的JDK版本无关,除非在项目的POM文件中显示的指定一个版本,否则每次更新后都会使用编译器默认的source/target版本1.5。

所以,把原来修改过的东西修改回去先......

然后pom.xml中显示的指定这一段

<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<!-- 指定source和target的版本 -->
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
(如果有build标签了,就是plugins这一段)

然后在更新下  update project

刚才的错误就没了

上段代码测测吧

package mavenwebtest;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.FileSystemXmlApplicationContext;

public class HelloWorld {

public static void main(String[]args){

ApplicationContext ctx = new FileSystemXmlApplicationContext("src/helloWorld.xml");

HelloWorldSpringBean helloWorldSpringBean = (HelloWorldSpringBean)ctx.getBean("myHelloWorld");

helloWorldSpringBean.show();

}

}
package mavenwebtest;

public class HelloWorldSpringBean {
private String hello;

public String getHello() {
return hello;
}

public void setHello(String hello) {
this.hello = hello;
}

public void show() {
System.out.println("--message--" + getHello());
}
}

helloWorld.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="myHelloWorld" class="mavenwebtest.HelloWorldSpringBean">
<property name="hello">
<value>hello World spring!</value>
</property>
</bean>
</beans>




注意那个helloWorld.xml要放在src下面


跑通。。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  maven web