【IntelliJ IDEA学习之五】IntelliJ IDEA 搭建项目
版本:IntelliJIDEA2018.1.4
一、同一窗口展示多个应用(弊端:耗内存)
idea没有eclipse workspace的概念,如果想在同一窗口显示多个应用,可以按照如下方式来做:
1、新建空工程
File-->new-->Project...



2、新建Modules
CTRL+ALT+SHIFT+S:

比如新建一个静态页面模块:


新建一个纯Java应用:
左侧选择Java,右侧选择JDK,下面不要选择任何Frameworks


最后效果:


二、搭建java web工程
1、搭建
(1)新建Java Enterprise


(2)在WEB-INF下面新建两个Directory:classes和lib

2、配置web项目(CTRL+ALT+SHIFT+S)
(1)配置编译输出路径

(2)添加依赖jar包




编译之后:

(3)配置打包方式Artifacts

编译之后:

(4)Tomcat配置



Tomcat 集成原理:
为项目配置了 tomcat 后,idea 会拷贝一份配置到系统目录中,如下

(1)conf存放配置:

Tomcat 之所以可以 root 启动和热部署,原因在如下:

(2)logs目录是各项日志:

(3)work目录存放class和页面文件:

三、搭建maven工程
1、搭建简单java工程,使用模板:maven-archetype-quickstart

配置配置 groupId 和 ArtifactId:

配置 maven 构建工具信息:

配置module信息:

Finish,完成。稍等片刻,选择右下角,enable auto import:

最终效果:

2、搭建maven web工程
使用模板:maven-archetype-webapp




使用模板创建的目录没有java和resources目录,执行创建然后,修改目录属性


最终效果:

3、不使用maven模板创建工程:

maven类型工程配置tomcat与上面普通Java web应用相同。
遇到的问题:
tomcat启动后,jsp未编译。
原因:项目Artifacts配置有问题
参考:正场项目的配置:


另附上正常启动tomcat日志,和eclipse不太一样,注意几个关键点:
D:\apache-tomcat-8.5.43\bin\catalina.bat run
[2019-10-11 02:19:02,554] Artifact activiti:war exploded: Waiting for server connection to start artifact deployment...
Using CATALINA_BASE: "C:\Users\Administrator\.IntelliJIdea2018.1\system\tomcat\Unnamed_activiti"
Using CATALINA_HOME: "D:\apache-tomcat-8.5.43"
Using CATALINA_TMPDIR: "D:\apache-tomcat-8.5.43\temp"
Using JRE_HOME: "C:\java\jdk1.8.0_171"
Using CLASSPATH: "D:\apache-tomcat-8.5.43\bin\bootstrap.jar;D:\apache-tomcat-8.5.43\bin\tomcat-juli.jar"
Connected to the target VM, address: 'javadebug', transport: 'shared memory'
11-Oct-2019 14:19:03.683 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Server version: Apache Tomcat/8.5.43
11-Oct-2019 14:19:03.687 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Jul 4 2019 20:53:15 UTC
11-Oct-2019 14:19:03.687 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Server number: 8.5.43.0
11-Oct-2019 14:19:03.687 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Windows 7
11-Oct-2019 14:19:03.688 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version: 6.1
11-Oct-2019 14:19:03.688 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: amd64
11-Oct-2019 14:19:03.688 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home: C:\java\jdk1.8.0_171\jre
11-Oct-2019 14:19:03.688 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version: 1.8.0_171-b11
11-Oct-2019 14:19:03.688 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor: Oracle Corporation
11-Oct-2019 14:19:03.688 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: C:\Users\Administrator\.IntelliJIdea2018.1\system\tomcat\Unnamed_activiti
11-Oct-2019 14:19:03.689 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: D:\apache-tomcat-8.5.43
11-Oct-2019 14:19:03.689 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=C:\Users\Administrator\.IntelliJIdea2018.1\system\tomcat\Unnamed_activiti\conf\logging.properties
11-Oct-2019 14:19:03.690 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
11-Oct-2019 14:19:03.690 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dvisualvm.id=23258637664006
11-Oct-2019 14:19:03.690 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -agentlib:jdwp=transport=dt_shmem,address=javadebug,suspend=y,server=n
11-Oct-2019 14:19:03.690 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -javaagent:D:\JetBrains\IntelliJIDEA2018.1.4\lib\rt\debugger-agent.jar=file:/C:/Users/Administrator/AppData/Local/Temp/capture4739.props
11-Oct-2019 14:19:03.690 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dfile.encoding=UTF-8
11-Oct-2019 14:19:03.690 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote=
11-Oct-2019 14:19:03.690 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.port=1099
11-Oct-2019 14:19:03.690 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.ssl=false
11-Oct-2019 14:19:03.690 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.authenticate=false
11-Oct-2019 14:19:03.691 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.rmi.server.hostname=127.0.0.1
11-Oct-2019 14:19:03.691 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
11-Oct-2019 14:19:03.691 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
11-Oct-2019 14:19:03.691 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dignore.endorsed.dirs=
11-Oct-2019 14:19:03.691 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=C:\Users\Administrator\.IntelliJIdea2018.1\system\tomcat\Unnamed_activiti
11-Oct-2019 14:19:03.691 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=D:\apache-tomcat-8.5.43
11-Oct-2019 14:19:03.691 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=D:\apache-tomcat-8.5.43\temp
11-Oct-2019 14:19:03.691 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded APR based Apache Tomcat Native library [1.2.23] using APR version [1.7.0].
11-Oct-2019 14:19:03.691 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
11-Oct-2019 14:19:03.691 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true]
11-Oct-2019 14:19:03.702 信息 [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 1.1.1c 28 May 2019]
11-Oct-2019 14:19:03.859 信息 [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
11-Oct-2019 14:19:03.877 信息 [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read
11-Oct-2019 14:19:03.889 信息 [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["ajp-nio-8009"]
11-Oct-2019 14:19:03.892 信息 [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read
11-Oct-2019 14:19:03.892 信息 [main] org.apache.catalina.startup.Catalina.load Initialization processed in 685 ms
11-Oct-2019 14:19:03.933 信息 [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]
11-Oct-2019 14:19:03.933 信息 [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet Engine: Apache Tomcat/8.5.43
11-Oct-2019 14:19:03.948 信息 [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
11-Oct-2019 14:19:03.965 信息 [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-nio-8009"]
11-Oct-2019 14:19:03.969 信息 [main] org.apache.catalina.startup.Catalina.start Server startup in 76 ms
Connected to server
[2019-10-11 02:19:04,230] Artifact activiti:war exploded: Artifact is being deployed, please wait...
11-Oct-2019 14:19:07.940 信息 [RMI TCP Connection(3)-127.0.0.1] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
[INFO] [2019-10-11 14:19:08] org.springframework.web.context.ContextLoader.initWebApplicationContext(305) | Root WebApplicationContext: initialization started
[INFO] [2019-10-11 14:19:08] org.springframework.context.support.AbstractApplicationContext.prepareRefresh(582) | Refreshing Root WebApplicationContext: startup date [Fri Oct 11 14:19:08 CST 2019]; root of context hierarchy
[INFO] [2019-10-11 14:19:08] org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(317) | Loading XML bean definitions from class path resource [spring/springContext.xml]
[INFO] [2019-10-11 14:19:08] org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(317) | Loading XML bean definitions from file [E:\workspace\activiti\target\activiti\WEB-INF\classes\spring\spring-activiti.xml]
[INFO] [2019-10-11 14:19:08] org.springframework.core.io.support.PropertiesLoaderSupport.loadProperties(172) | Loading properties file from URL [file:/E:/workspace/activiti/target/activiti/WEB-INF/classes/jdbc.properties]
[INFO] [2019-10-11 14:19:08] org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.<init>(155) | JSR-330 'javax.inject.Inject' annotation found and supported for autowiring
[INFO] [2019-10-11 14:19:09] org.springframework.jdbc.datasource.DriverManagerDataSource.setDriverClassName(133) | Loaded JDBC driver: com.mysql.jdbc.Driver
[INFO] [2019-10-11 14:19:09] org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry.register(543) | Mapped "{[/index/sayhi]}" onto public java.lang.String com.wjy.controller.IndexController.sayhi(org.springframework.ui.Model)
[INFO] [2019-10-11 14:19:09] org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.initControllerAdviceCache(534) | Looking for @ControllerAdvice: Root WebApplicationContext: startup date [Fri Oct 11 14:19:08 CST 2019]; root of context hierarchy
[INFO] [2019-10-11 14:19:10] org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.initControllerAdviceCache(534) | Looking for @ControllerAdvice: Root WebApplicationContext: startup date [Fri Oct 11 14:19:08 CST 2019]; root of context hierarchy
[INFO] [2019-10-11 14:19:10] org.springframework.web.servlet.handler.AbstractUrlHandlerMapping.registerHandler(354) | Mapped URL path [/**] onto handler 'org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler#0'
[INFO] [2019-10-11 14:19:10] org.springframework.web.servlet.handler.AbstractUrlHandlerMapping.registerHandler(354) | Mapped URL path [/resources/**] onto handler 'org.springframework.web.servlet.resource.ResourceHttpRequestHandler#0'
[INFO] [2019-10-11 14:19:11] org.activiti.engine.impl.ProcessEngineImpl.<init>(85) | ProcessEngine default created
[INFO] [2019-10-11 14:19:12] org.springframework.web.context.ContextLoader.initWebApplicationContext(345) | Root WebApplicationContext: initialization completed in 3948 ms
[INFO] [2019-10-11 14:19:12] org.springframework.web.servlet.FrameworkServlet.initServletBean(489) | FrameworkServlet 'SpringMVC': initialization started
[INFO] [2019-10-11 14:19:12] org.springframework.context.support.AbstractApplicationContext.prepareRefresh(582) | Refreshing WebApplicationContext for namespace 'SpringMVC-servlet': startup date [Fri Oct 11 14:19:12 CST 2019]; parent: Root WebApplicationContext
[INFO] [2019-10-11 14:19:12] org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(317) | Loading XML bean definitions from class path resource [spring/springContext.xml]
[INFO] [2019-10-11 14:19:12] org.springframework.core.io.support.PropertiesLoaderSupport.loadProperties(172) | Loading properties file from URL [file:/E:/workspace/activiti/target/activiti/WEB-INF/classes/jdbc.properties]
[INFO] [2019-10-11 14:19:12] org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.<init>(155) | JSR-330 'javax.inject.Inject' annotation found and supported for autowiring
[INFO] [2019-10-11 14:19:12] org.springframework.jdbc.datasource.DriverManagerDataSource.setDriverClassName(133) | Loaded JDBC driver: com.mysql.jdbc.Driver
[INFO] [2019-10-11 14:19:12] org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry.register(543) | Mapped "{[/index/sayhi]}" onto public java.lang.String com.wjy.controller.IndexController.sayhi(org.springframework.ui.Model)
[INFO] [2019-10-11 14:19:12] org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.initControllerAdviceCache(534) | Looking for @ControllerAdvice: WebApplicationContext for namespace 'SpringMVC-servlet': startup date [Fri Oct 11 14:19:12 CST 2019]; parent: Root WebApplicationContext
[INFO] [2019-10-11 14:19:12] org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.initControllerAdviceCache(534) | Looking for @ControllerAdvice: WebApplicationContext for namespace 'SpringMVC-servlet': startup date [Fri Oct 11 14:19:12 CST 2019]; parent: Root WebApplicationContext
[INFO] [2019-10-11 14:19:12] org.springframework.web.servlet.handler.AbstractUrlHandlerMapping.registerHandler(354) | Mapped URL path [/**] onto handler 'org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler#0'
[INFO] [2019-10-11 14:19:12] org.springframework.web.servlet.handler.AbstractUrlHandlerMapping.registerHandler(354) | Mapped URL path [/resources/**] onto handler 'org.springframework.web.servlet.resource.ResourceHttpRequestHandler#0'
[INFO] [2019-10-11 14:19:12] org.springframework.web.servlet.FrameworkServlet.initServletBean(508) | FrameworkServlet 'SpringMVC': initialization completed in 499 ms
[2019-10-11 02:19:12,618] Artifact activiti:war exploded: Artifact is deployed successfully
[2019-10-11 02:19:12,618] Artifact activiti:war exploded: Deploy took 8,388 milliseconds
11-Oct-2019 14:19:13.949 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [D:\apache-tomcat-8.5.43\webapps\manager]
11-Oct-2019 14:19:14.058 信息 [localhost-startStop-1] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
11-Oct-2019 14:19:14.068 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [D:\apache-tomcat-8.5.43\webapps\manager] has finished in [117] ms
关闭tomcat日志:
D:\apache-tomcat-8.5.43\bin\catalina.bat stop
Disconnected from the target VM, address: 'javadebug', transport: 'shared memory'
Using CATALINA_BASE: "C:\Users\Administrator\.IntelliJIdea2018.1\system\tomcat\Unnamed_activiti"
Using CATALINA_HOME: "D:\apache-tomcat-8.5.43"
Using CATALINA_TMPDIR: "D:\apache-tomcat-8.5.43\temp"
Using JRE_HOME: "C:\java\jdk1.8.0_171"
Using CLASSPATH: "D:\apache-tomcat-8.5.43\bin\bootstrap.jar;D:\apache-tomcat-8.5.43\bin\tomcat-juli.jar"
11-Oct-2019 13:02:47.620 信息 [main] org.apache.catalina.core.StandardServer.await A valid shutdown command was received via the shutdown port. Stopping the Server instance.
11-Oct-2019 13:02:47.621 信息 [main] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler ["http-nio-8080"]
11-Oct-2019 13:02:47.709 信息 [main] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler ["ajp-nio-8009"]
11-Oct-2019 13:02:47.790 信息 [main] org.apache.catalina.core.StandardService.stopInternal Stopping service [Catalina]
11-Oct-2019 13:02:47.811 信息 [main] org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler ["http-nio-8080"]
11-Oct-2019 13:02:47.812 信息 [main] org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler ["ajp-nio-8009"]
11-Oct-2019 13:02:47.814 信息 [main] org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler ["http-nio-8080"]
11-Oct-2019 13:02:47.815 信息 [main] org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler ["ajp-nio-8009"]
Disconnected from server
【IntelliJ IDEA学习之五】IntelliJ IDEA 搭建项目的更多相关文章
- (摘录笔记)JAVA学习笔记SSH整合搭建项目
1:当然是导jar包啦: struts2: spring: hibernate: 至于这些jar包是什么作用,我想就不必我解释了,大家都懂得,ssh2基本的jar包: 还有一些其他jar包:strut ...
- 【IntelliJ IDEA学习之七】maven专题
版本:IntelliJIDEA2018.1.4 一.maven全局设置 设置Runner 运行VM参数:-Xms128m -Xmx512m -Duser.language=zh -Dfile.enco ...
- 【IntelliJ IDEA学习之九】版本控制之Git和Github
版本:IntelliJIDEA2018.1.4 [IntelliJ IDEA学习之九]版本控制之Git版本:IntelliJIDEA2018.1.4 一.git知识准备git是目前流行的分布式版本管理 ...
- 【IDEA使用技巧】(5) —— IntelliJ IDEA集成Tomcat部署Maven Web项目
1.IntelliJ IDEA集成Tomcat部署Maven Web项目 1.1.IDEA构建Maven Web项目 使用IDEA来创建一个简单的Hello World的Maven Web项目,并使用 ...
- IntelliJ IDEA上创建maven Spring MVC项目
IntelliJ IDEA上创建Maven Spring MVC项目 各软件版本 利用maven骨架建立一个webapp 建立相应的目录 配置Maven和SpringMVC 配置Maven的pom.x ...
- 如何使用windows版Docker并在IntelliJ IDEA使用Docker运行Spring Cloud项目
如何使用windows版Docker并在IntelliJ IDEA使用Docker运行Spring Cloud项目 #1:前提准备 1.1 首先请确认你的电脑是windows10专业版或企业版,只有这 ...
- Intellij IDEA创建git,maven的SpringMVC项目
Intellij IDEA创建git,maven的SpringMVC项目 原文链接:http://www.cnblogs.com/blog5277/p/8906120.html 原文作者:博客园--曲 ...
- IntelliJ IDEA学习记录
一.下载 地址:官网下载地址 二.安装 运行安装程序,一路下一步.注意选择安装路径. 三.基本概念 project:相当于donet中的解决方案(solution),eclipse中的工作空间(wor ...
- 在IntelliJ IDEA中创建Maven多模块项目
在IntelliJ IDEA中创建Maven多模块项目 1,创建多模块项目选择File>New>Project 出现New Project窗口左侧导航选择Maven,勾选右侧的Create ...
随机推荐
- 【C#进阶学习】泛型
一.泛型引入 需求:传入一个类型(整型/日期/字符串或其他),打印出它的类型和内容. 1.初级版 public class CommonMethod { /// <summary> /// ...
- alpine使用的避坑指南
alpine,是一个重量仅为5 MB的最小Linux发行版.它还有基本的linux工具和一个不错的包管理器APK.APK非常稳定,有相当数量的包.由于体积小,在容器中很受欢迎,但是使用上坑也很多,大部 ...
- PIE SDK 多数据源的复合数据集加载
1. 功能简介 GIS遥感图像数据复合是将多种遥感图像数据融合成一种新的图像数据的技术,是目前遥感应用分析的前沿,PIESDK通过复合数据技术可以将多幅幅影像数据集(多光谱和全色数据)组合成一幅多波段 ...
- js联动三级
自己研究三级加看网上的例子得出来的 <select id="province"> <option value="">----请选择- ...
- 如何从ubuntu或PC传递文件到板子,ubuntu如何上网?
3.3 如何从ubuntu或PC传递文件到板子,ubuntu如何上网? 答:以下将分别介绍如何在ubuntu和windows下如何传递文件. ubuntu如何配置上网?ubuntu 上网:打开Orac ...
- MySQL语言分类——DML
DML DML的全称是Database management Language,数据库管理语言.主要包括以下操作: insert.delete.update.optimize. 本篇对其逐一介绍 IN ...
- 写css注意的事项
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- vue多个路由使用同一个页面,通过name判断参数,渲染页面数据
项目中,发现有多个页面的数据内容相同,只是请求数据的参数不同,就可以使用同一个组件来渲染 这里的客户列表 / 我负责的 / 我参与的 都使用同一个组件,不同点在请求数据的参数 可以看到,通过钩子函数, ...
- fatal error C1189: #error : Building MFC application with /MD[d] (CRT dll version) requires MFC
出现如下错误: fatal error C1189: #error : Building MFC application with /MD[d] (CRT dll version) requires ...
- 个人项目-WC (java实现)
一.Github地址:https://github.com/734635746/WC 二.PSP表格 PSP2.1 Personal Software Process Stages 预估耗时(分钟) ...