Maven总结 - 一、初探-项目构建

news2024/9/20 15:05:16

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。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存失败,源站可能有防盗链机制,建议将图片保存下来直接上传下上传(iOkiOM-8SBNF-1672671488138)(Maven.assets/image-20210119111048614.png30
)(Maven.assets/image-20210119111048614.png)]

打开方式有两种

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打开,重新将这个项目构建并且运行起来

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/135175.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

日期的格式化与解析

格式化&#xff1a;日期 —> 字符串 解析&#xff1a; 字符串 —> 日期 这里指的是日期的显式格式化和解析 DATE_FORMAT(date,fmt) 按照字符串fmt格式化日期date值 TIME_FORMAT(time,fmt) 按照字符串fmt格式化时间time值 GET_FORMAT(date_type,format_type) 返回…

1、影像组学基础知识

一、What is Radiomics? 提出影像组学论文&#xff1a; **主要目的&#xff1a;**说明肿瘤在时间和空间上的异质性&#xff0c;可以用影像组学说明 时间上的异质性&#xff1a;同一个人同一个肿瘤在不同时间段的表现 空间上的异质性&#xff1a;同一肿瘤在不同个体上的表…

适合编程初学者的开源项目:小游戏2048(Vue版)

目标 为编程初学者打造入门学习项目&#xff0c;使用各种主流编程语言来实现。 2048游戏规则 一共16个单元格&#xff0c;初始时由2或者4构成。 1、手指向一个方向滑动&#xff0c;所有格子会向那个方向运动。 2、相同数字的两个格子&#xff0c;相遇时数字会相加。 3、每次…

分布式存储系统 Ceph 实战操作

文章目录一、概述二、cephadm 工具的使用1&#xff09;cephadm 工具的介绍2&#xff09;cephadm 安装3&#xff09;cephadm 常用命令使用4&#xff09;启用 ceph shell三、ceph 命令使用1&#xff09;添加新节点2&#xff09;使用 ceph 安装软件3&#xff09;主机操作1、列出主…

Python绘制表白代码,又是一个表白神器(赠源码,文章内有效果展示)

前言 嗨呀&#xff0c;又是我&#xff0c;又给你们带来了表白的代码 之前发了那些 照片里面加文字的…还有烟花…还有跳动爱心…emm你们也可以去看看哦 今天带来的这个&#xff0c;也是很不错哦 只不过它出来的有些慢&#xff0c;我这里先给你们看看这个效果图吧 效果展示…

蓝桥集训(附加面试题)第九天

本文来源于算法面试题特训专栏&#xff0c;这里有大量专业性的算法题比如&#xff08;动态规划21天&#xff0c;大厂特训28天等等&#xff09; 欢迎大家一起学习。 链接&#xff1a;传送门 目录标题导读Java蓝桥集训面试题点击直接资料领取导读 在刚刚结束的 每日算法&面…

【大数据】CentOS7 安装 Hive(附有Hive基本使用-练习)

文章目录1.安装并配置Hive处理hive中文乱码2.Hive基本操作3.将本地文件导入Hive练习1练习21.安装并配置Hive 下载 利用Xshell中的xftp&#xff0c;将apache-hive导入到CentOS7的/opt/source文件夹下 解压 解压命令&#xff1a;tar -zxvf apache-hive-1.2.1-bin.tar.gz 重命名…

【人工智能】基于五笔字型规范和人工神经网络的简中汉字识别【一】

导语:看到一则旧闻,读了一篇论文,产生一些思考,完成一个模型 前言及项目简介 一、旧闻二、论文三、思考四、模型一、旧闻 大概去年十一月初吧,博主还在进行紧张的研考冲刺阶段。学校下达毕设选题任务,仓促间就要决定毕设内容,并无思路,不免有些迷茫:既担心选题过于简…

Unc0ver 8.0.0 更新:支持 iOS 14.6-14.8、A12-A13 iPhone 越狱

今日&#xff0c;越狱工具 unc0ver 发布了全新的 8.0.0 版本。现在支持 iOS 14.6-14.8 版本越狱&#xff0c;需要搭载 A12-A13 芯片的 iPhone 手机。 本次越狱支持的系统版本&#xff1a;iOS 14.6、iOS 14.7、iOS 14.7.1、iOS 14.8这4种版本&#xff0c;iOS 15.0以上系统请等待…

【VUE3】保姆级基础讲解(四): vue-router,vuex

目录 后端路由的映射方案 SPA&#xff1a;single page web application url的hash vue-router 基础使用 路由默认url 异步打包 动态路由匹配 notfound 嵌套路由 动态路由 添加路由 添加嵌套路由 删除路由 路由导航守卫 全局前置守卫beforeEach Vuex状态管理 状态…

互联网电商模式的迅速发展,消费返利模式你知道吗?

互联网电商模式的迅速发展&#xff0c;消费返利模式在市面上一直以来的引流能力相信大家都是有目共睹的&#xff0c;只不过因为近两到三年来的返利模式相关负面新闻太多&#xff0c;导致到了大众对于这种模式的一种不信任心理&#xff0c;但不可否认的是目前还是有很多消费者在…

Prompt-NLP新范式

作者&#xff1a;子苏 来源&#xff1a;投稿 编辑&#xff1a;学姐 Prompt综述论文&#xff1a;Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in Natural Language Processing 论文作者知乎-近代自然语言处理技术发展的“第四范式” NLP技术发展…

【回答问题】ChatGPT上线了!推荐40个以上比较好的目标检测模型

推荐40个以上比较好的目标检测模型? 目标检测是指在图像中找到并标识出特定目标的计算机视觉任务。近年来&#xff0c;机器学习技术的发展使得目标检测取得了长足进步。目前有许多优秀的目标检测模型&#xff0c;下面是推荐的40个以上的比较好的目标检测模型&#xff1a; R-…

事务到底是隔离的还是不隔离的?

我在第 3 篇文章和你讲事务隔离级别的时候提到过,如果是可重复读隔离级别,事务 T 启动的时候会创建一个视图 read-view,之后事务 T 执行期间,即使有其他事务修改了数据,事务 T 看到的仍然跟在启动时看到的一样。也就是说,一个在可重复读隔离级别下执行的事务,好像与世无…

尚医通-医院列表接口-等级接口-功能测试(二十二)

目录&#xff1a; &#xff08;1&#xff09;医院列表接口-医院等级接口 &#xff08;2&#xff09;医院列表接口-远程调用 &#xff08;3&#xff09;医院列表接口-功能测试 &#xff08;1&#xff09;医院列表接口-医院等级接口 由于我们的医院等级、省市区地址都是取的数据…

BGP在数据中心的应用1——数据中心网络介绍

注&#xff1a; 本文根据《BGP in the Datacenter》整理&#xff0c;有兴趣和英文阅读能力的朋友可以直接看原文&#xff1a;https://www.oreilly.com/library/view/bgp-in-the/9781491983416/ 引子 在传统的大型数据中心&#xff0c;网络通常是三层结构。Cisco称之为&#x…

js函数之call和apply

一、含义 function test() {console.log(----) }//执行 test(); test.call() 结果一致&#xff0c;调用test()默认会调用call&#xff0c;二者效果一致&#xff0c;call省略掉了。 二、改变this指向 call还有一个很重要的功能是改变this的指向。 function Car(brand, color)…

[Java]泛型

文章目录&#x1f97d; 泛型简介&#x1f30a; 泛型的概念&#x1f30a; 使用泛型的原因&#x1f30a; 小结&#x1f30a; 类型推断&#x1f97d; 自定义泛型&#x1f30a; 自定义泛型类&#x1f30a; 自定义泛型类/泛型接口注意点&#x1f30a; 自定义泛型方法&#x1f97d; 泛…

2022HW11

文章目录任务描述-域自适应二、代码三、实验1、Simple Baseline2、Medium Baseline3、Strong Baseline任务描述-域自适应 ●想象一下&#xff0c;你想做与3D环境相关的任务&#xff0c;然后发现 ○3D图像很难标记&#xff0c;因此也很昂贵。 ○模拟图像&#xff08;如GTA-5上的…

shell-流程控制之循环

1.for创建20用户用户前缀由用户输入用户初始密码由用户输入 例如&#xff1a;test01,test10 [rootcotenos day06]# vim useradd.sh #!/bin/bash read -p "请输入用户前缀&#xff1a;" user read -p "请输入初始密码&#xff1a;" pass for ((i1;i<…