maven不仅仅是一款管理jar包的工具,更重要的是一款项目构建的工具
maven下载网站
:https://maven.apache.org/
maven搜索网站
:http://mvn.coderead.cn/
一、项目构建
给你一套源代码,你怎么能跑起来?
不能把!就是几个文件夹,几个文件。是不能运行的!
是不是需要和idea打交道,告诉idea怎么样才能运行起来,比如知道main方法在哪里?配置文件在哪里,编译好的文件输出到哪里,是不是?当然eclipse也一样。
平时我们是怎么构建项目的,项目怎么运行起来呢?
idea帮我们编译
我们依靠点击构建项目
一切设置好以后,使用工具(idea)帮我们打包
项目构建中几个关键点?
1、jdk啥版本?
2、哪些文件夹是干啥的!! 源文件?配置文件?测试文件?在哪里?
3、如果是web工程,web.xml放哪里?
4、编译文件,编译后的文件放在哪里。
5、打包,打包成什么文件?
1、先聊一聊idea的项目结构
好好说说Project Structure
- 英 /ˈstrʌktʃə®/
“项目结构” 对话框允许您管理项目和IDE级别的元素,例如Modules,Facets,Libraries, Artifacts和SDK。
打开方式有两种
1、通过工具栏
2、通过快捷键
Ctrl+Shift+Alt+S
(1)Project选项
指定项目名称,SDK,语言级别和编译器输出路径。
-
Project name
:项目名,使用此字段编辑项目名称。 -
Project SDK
:项目SDK,选择项目SDK。如果所需SDK不在列表中,请单击“ New”,然后选择所需的SDK类型。然后,在打开的对话框中,选择SDK主目录,然后单击确定。要查看或编辑所选SDK的名称和内容,请单击"Edit"。(SDK页面将打开。) -
Project language level
:选择要支持的Java语言级别。选定的级别将被用作项目默认值。 -
Project compiler output
:项目编译器输出,指定IntelliJ IDEA将存储编译结果的路径。单击选择路径对话框中browseButton 的目录。指定目录中的两个子目录将被创建:
production为生产代码。
test为测试来源。
在这些子目录中,将为每个模块创建单独的输出目录。输出路径可以在模块级重新定义。
(2)Modules 选项
指定项目名称,SDK,语言级别和编译器输出路径。
Name
:项目名称Souces
:这里对Module的开发目录进行文件夹分类,就是说这个module里有什么内容,说明了不同性质的内容放在哪里。
注意,这些不同内容的标记代表了一个标准Java工程的各项内容,IntelliJ就是根据这些标记来识别一个Java工程的各项内容的,比如,它会用javac去编译标记为Sources的源码,打包的时候会把标记为Resources的资源拷贝到jar包中,并且忽略标记为Exluded的内容。左边显示的是在选中内容的预览。Paths
:为模块配置编译器输出路径,还可以指定与模块关联的外部JavaDocs和外部注释的位置。Dependencies
:在此选项卡上,您可以定义模块SDK并形成模块依赖关系列表。
(3)Sources选项
Sources:源代码存放的文件,蓝色。
Tests:设置测试代码存放的文件件,绿色。
Resources:一般对应着Sources文件,一般放配置文件,如:db.properties。
Test Resources:这个对应着Tests文件夹,存放着Tests代码的配置文件。
Excluded:设置配出编译检查的文件,例如我们在project模块设置的out文件夹。
(4)Paths
-
Compiler output:编译输出路径。
-
Inherit project compile output path:继承项目编译输出路径 选择此选项以使用为项目指定的路径。即上面在Project选项中设置的out文件路径。
-
Use module compile output path:使用模块编译输出路径。
- Output path:编译输出路径。
- Test output path:测试代码编译输出路径。
- Exclude output paths: 排除输出路径,选中此复选框可以排除输出目录。
-
JavaDoc:使用可用控件组合与模块关联的外部JavaDocs存储位置的列表。
-
External Annotations:外部注释。使用
和
管理与模块关联的外部注释的位置(目录)列表。
(5)Dependencies
在此选项卡上,您可以定义模块SDK并形成模块依赖关系列表。
-
Module SDK:模块SDK,选择模块SDK。
(要将项目SDK与模块相关联,请选择Project SDK。请注意,如果稍后更改了项目SDK,模块SDK将相应更改。
如果所需SDK不在列表中,请单击“ 新建”,然后选择所需的SDK类型。然后,在打开的对话框中,选择SDK主目录,然后单击确定。
要查看或编辑所选SDK的名称和内容,请单击编辑。(SDK页面将打开。) -
依赖列表
-
相关性存储格式,选择用于存储依赖关系的格式(作为IntelliJ IDEA模块或Eclipse项目)。该选项对使用不同开发工具的团队有帮助。
(6)Libraries
在此选项卡上,您可以定义模块SDK并形成模块依赖关系列表。
首先,可以创建一个新的项目库,可以设置分类。
可以添加本地jar包,网络来源的jar包,删除jar包。
(7)Facets
表示这个 module 有什么特征,比如 Web,Spring 和 Hibernate 等;
(8)Artifacts
Artifact
是 maven 中的一个概念,表示某个 module 要如何打包,例如 war exploded、war、jar 等等这种打包形式;
一个 module 有了 Artifacts 就可以部署到应用服务器中了!- 在给项目配置 Artifacts 的时候有好多个 type 的选项,exploed 是什么意思?explode 在这里你可以理解为展开,不压缩的意思。也就是 war、jar 等产出物没压缩前的目录结构。
- 建议在开发的时候使用这种模式,便于修改了文件的效果立刻显现出来。
- 默认情况下,IDEA 的 Modules 和 Artifacts 的 output 目录 已经设置好了,不需要更改.
- 打成 war 包 的时候会自动在 WEB-INF 目录 下生产 classes 目录 ,然后把编译后的文件放进去。
(9)SDKS
系统开发工具 ,全局 SDK 配置 。
(10)Global libraries
全局类库,可以配置一些常用的类库。
(11)Problems
问题,在项目异常的时候很有用,可以根据提示进行项目修复(FIXED)。
(12).idea和.iml
我们设置了半天看看我们设置的信息被保存在了哪里?
xinzhi-shop.iml
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="web" name="Web">
<configuration>
<descriptors>
<deploymentDescriptor name="web.xml" url="file://$MODULE_DIR$/WebContent/WEB-INF/web.xml" />
</descriptors>
<webroots>
<root url="file://$MODULE_DIR$/WebContent" relative="/" />
</webroots>
</configuration>
</facet>
</component>
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="lib" level="project" />
</component>
</module>
这样别的idea打开项目时就能读取出来,并能明确项目的构建信息
问,eclipse直接打开能用吗?
提问现在给你一个java工程的代码你们构建出来了吗?
或者给你一个eclipse的代码你能转化过来吗?
答:
能,只有有项目的源代码就行,然后进idea,找到需要构建的项目,找到具体的模块,根据已知是什么项目添加对应的特性即可
实战
找一个web项目,将里面的文件除了源代码和静态资源,其余的全部删除,然后使用idea打开,重新将这个项目构建并且运行起来