maven的动态web项目从搭建到运行完整示例(dark亲测可用)
当前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的
Archetype Created Web Application
打开当前项目对应的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中显示的指定这一段
org.apache.maven.plugins
maven-compiler-plugin
3.3
1.8
(如果有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
hello World spring!
注意那个helloWorld.xml要放在src下面
跑通。。。。