IDEA的使用
IDEA-VM配置
idea64.exe.vmoptions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17-server
-Xms1g
-Xmx2g
-XX:NewRatio=3
-Xss16m
-XX:+UseConcMarkSweepGC
-XX:+CMSParallelRemarkEnabled
-XX:ConcGCThreads=4
-XX:ReservedCodeCacheSize=240m
-XX:+AlwaysPreTouch
-XX:+TieredCompilation
-XX:+UseCompressedOops
-XX:SoftRefLRUPolicyMSPerMB=50
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-Djsse.enableSNIExtension=false
-ea
.gitignore模板
1 | # Created by .ignore support plugin (hsz.mobi) |
Maven相关
创建Maven项目
创建项目:
项目转换成Maven项目
如果有一个非maven的项目想转换成maven管理的项目,只需如下操作即可:在项目上右键,添加框架支持
选择maven与其它想添加的框架
选择允许自动导入
这样就成功转换成了一个maven项目
创建web Maven项目
- 上面是一种创建普通maven项目的办法
创建一个project,选择maven项目,指定骨架,这里选择的是一个webapp,当然webapp骨架有非常多,这里选择apache提供的。
填写项目的座标,公司编号(一般倒置域名),项目名称,版本:
因为IDEA内置了Maven,可以选择默认内置的Maven;当然最好是选择自己安装并配置好的环境,让所有的IDE统一,这里可以点绿色的小加号添加参数
选择项目名称,位置,一般默认,点击Finish项目就创建完成了,如下图所示:
maven项目结构设置
maven有一个很重要的功能是规范项目,标准的项目结构如下所示:
但是你会发现默认创建的项并非是完整的,如写源代码的目录没有,当前项目结构如下:
添加相应的目录,选择打开项目结构:
蓝色:源代码绿色:测试资源文件(配置信息)测试资源文件被排除的(打包里被忽视)目标位置右键添加目录:
添加后的目录结构如下:
Maven的配置
配置文件setting.xml
1 |
|
Maven工具栏
工具栏介绍
工具栏如下:
图标:从左到右
重新导入所有的maven项目,刷新图标
重新生成所有源代码并更新文件夹图标
下载源码或文件图标
添加一个外部的Maven项目图标
执行选择的指令图标
执行自定义的指令
切换离线模式图标
切换成跳过测试模式图标
显示依赖结构图
折叠所有图标
Maven设置
快捷执行Maven命令
选择命令后右键run
创建命令,可反复使用并指定名称与参数
定义细节
执行
Web项目
配置Tomcat
点击右上角下拉框,选择Edit Configurations,编辑配置
添加tomcat的配置
配置tocat服务器,命名,选择tomcat版本,等想配置的信息;最关键的是需要将项目部署出去,可以直接击fix
选择war explored
当然也可以手动选择要部署出去的项目,特别是有多个项目的情况
配置项目结构,特别是要注意依赖的包需要部署到WEB-INF的lib目录下
完成后可以启动tomcat服务器,当然可以直接使用插件让项目部署到jetty中通过maven运行,不需tomcat。效果如下:
war和war exploded的区别
是选择war还是war exploded 这里首先看一下他们两个的区别:
- war模式这种可以称之为是发布模式,看名字也知道,这是先打成war包,再发布;
- war exploded模式是直接把文件夹、jsp页面 、classes等等移到Tomcat 部署文件夹里面,进行加载部署。因此这种方式支持热部署,一般在开发的时候也是用这种方式。
在平时开发的时候,使用热部署的话,应该对Tomcat进行相应的设置,这样的话修改的jsp界面什么的东西才可以及时的显示出来。
两种方式得部署方式是不一样的,在获取项目的路径的时候得到的结果是不一样的
String contextPath = request.getSession().getServletContext().getRealPath("/");
不能添加Servlet的解决方法
打开项目描述文件,指定源代码目录:
1
2
3<sourceRoots>
<root url="file://$MODULE_DIR$/src/main/java" />
</sourceRoots>修改方法:
这样就可以了:
如果没有添加tomcat的配置信息或没有servet的核心包也可能出现该问题,建议修改pom加上:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22<!-- JSTL -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- Servlet核心包 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
<!--JSP -->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
<scope>provided</scope>
</dependency>
spring web项目
新建一个maven工程
修改pom.xml,修改打包方式为war
1
<packaging>war</packaging>
打开项目结构,在main目录下生成webapp目录
创建web.xml
删除已经存在的,新建web.xml,注意位置
点击编辑配置,进行Tomcat配置
添加本地Tomcat,设置tomcat的路径
此时界面下面会有警告:Warning:No artifacts configured,这时就必须要配置Atrifacts(构件)了
选择Deployment(部署)选项卡,添加xxx.war(exploded,是有时候发现没有Artifact这个属性
打开项目结构,打开Atrifacts(构件),选择”+” 号-> “web Application:Exploded” -> from Modules -> 选择自己的项目,->点击Apply,点击OK
回到 Tomcat 的配置下的部署选项卡。添加构件。
tomcat跑项目不需要打项目名字,修改Application Context的路径为 “/”
测试,在webapp 下创建index.jsp.启动tomcat访问。
1
2
3
4
5
6
7
8
9<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
</body>
</html>访问 http://localhost:8080/ ,成功访问表示配置成功。
springboot配置无提示
启动多个模块后,新建的模块中配置文件无提示,表现在配置文件的图标不是叶子
项目打jar包
编译当前文件
选择IDEA的菜单【File】->【Project Structure】,点击【Artifacts】,然后点击加号+,点击【JAR】->【Empty】
填写好jar name, 添加好对应的资源文件(编译好的class文件,这里有二个class文件)
先创建好与包名对应的文件目录结构(目录结构不一致可能导致后续使用jar文件时报class not found exception)
点击【Create Manifest】选择当前的工程,然后点击【OK】按钮
在【Main Class】中输入主类名称然后点击【OK】按钮,如下图
点击菜单上的【Build】->【Build Artifacts】 ,点击mapjoin-> Rebuild如下图
IDEA会在把打成的jar 生成到out/artifacts/
MANIFEST.MF格式如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16Manifest-Version: 1.0
Main-Class: com.youge.api.Hello
拓展知识:
文件定义了与扩展和包相关的数据。单词“manifest”的意思是“显示”,其一般属性有
1. Manifest-Version 用来定义manifest文件的版本,例如:Manifest-Version: 1.0
2. Created-By 声明该文件的生成者,一般该属性是由jar命令行工具生成的,例如:Created-By: Apache Ant 1.5.1
3. Signature-Version 定义jar文件的签名版本
4. Class-Path 应用程序或者类装载器使用该值来构建内部的类搜索路径
应用程序相关属性
1. Main-Class 定义jar文件的入口类,该类必须是一个可执行的类,一旦定义了该属性即可通过 java -jar x.jar来运行该jar文件。