IDEA 与 Maven 的那些事 0x02:IDEA编辑器中 maven 项目的创建

12 篇文章 0 订阅
12 篇文章 0 订阅

参考:https://www.bilibili.com/video/BV1Fz4y167p5


IDEA编辑器中 maven 项目的创建

创建 Java 项目

新建 Java 项目

  1. 选择 File --> New --> Project
  2. 选择 Maven ,设置 jdk 版本(Project SDK),勾选 Create from archetype,选择 maven 项目的模板。可以选择普通 Maven 项目模板(org.apache.maven.archetypes:maven-archetype-quickstart)。点击 Next
  3. 设置项目的项目名、保存位置、 GroupId 和 ArtifactId,点击 Next
  4. 检查 Maven 环境,如果此前已经配置好 Maven 环境,这里仅仅是检查;如果之前没有配置好,则需要在此处重新对 maven 进行配置。点击 Finish
  5. 等待项目创建,下载资源。
    • 若 IDEA 右下角弹窗,询问 Maven projects need to be imported(Import Changes / Enable Auto-Import),则选择 Enable Auto-Import(自动导入,这样“依赖包”才会自动下载)

至此,maven 项目创建完毕。

注意:

  1. IDEA 右侧会看到 Maven 标签,点开,在 Plugins 里,就是 Maven 的可视化命令,双击相应的命令,就会执行该命令。
  2. Maven 项目创建后,目录结构树中可能只有 main\javatest\java,并没有 main\resourcestest\resources,可以右击新建。比如新建了 main\resources ,此时,虽然它被命名为 resources,但 Maven 并不会识别,需要对该文件夹右击,选择 Mark Directory as --> Resources Root。会发现文件夹的图标发生了变化,此时,Maven 才会把这个文件夹识别为资源目录。同样,创建 test\resources 后,也需要右击选择Mark Directory as --> Test Resources Root
    • 以上目录创建与设置,也可以通过 File --> Project Structure --> Project Settings --> Modules --> Sources,然后展开文件目录树,在此处进行目录的创建于标注(Mark as)。

编译 Java 项目

  1. 点击右上角的 Add Configurations,打开 Run/Debug configurations 窗口
  2. 点击 + 号,选择 Maven,在 Name 处填写动作名(默认是当前项目名,但是最好改成动作名,如编译compile)。在 Parameters 中的 Command line: 中填入要执行的实际 maven 命令(但前面不用加上 mvn),如:compile(而非mvn compile)。注意,这里如果写错了命令(如拼写错误typo,要回来修改),之后 RUN 的时候就会报错。
    • 可以点击多次 + 号,生成多个命令,方便之后编译(compile)、打包(package)等
  3. 确认一下 Working directory: 是否无误,点击 Apply–> OK
  4. 此时会回到主界面,原先右上角的 Add Configurations 就发生了变化,变为了第2步Name中设置的动作名,且右侧出现了两个按钮,一个是 RUN(普通模式),另一个是 Debug(调试模式)
  5. 点击 RUN 就等于运行了 mvn compile 命令,可以看到在左侧文件目录树处生成了一个 target 目录。
    • 如果在执行一个打包命令(package)就可以看到 target 目录下又多出了一堆的目录,其中最主要是下方新生成了一个 jar 包。

创建 Web 项目

新建 Web 项目

创建 Web 项目会比创建普通的 Java 项目要难一点点,但二者步骤基本一致,区别在于选择 Maven 模板时,Web 项目选择的是 webapp 而非之前的 quickstart

  1. 选择 File --> New --> Project
  2. 选择 Maven ,设置 jdk 版本(Project SDK),勾选 Create from archetype,选择 maven 项目的模板。可以选择普通 Maven 项目模板(org.apache.maven.archetypes:maven-archetype-webapp)。点击 Next

其余步骤与创建 普通 Java 项目是一样的。

Web 项目创建完毕后,生成的目录树与普通 Java 项目有所区别。

  • main\java 变为了 main\webapp,用来放 html、jsp 等页面。main\webapp 下还有两个文件/目录
    • WEB-INF
    • index.jsp

启动 Web 项目

Web 项目是需要修改一些配置的,以后常用的也是 Web 项目。

1. 修改 jdk 版本

默认是 1.7 版本,改为 1.8 版本。(当然如果本身你用的 jdk 版本是 1.7 的话就不用改了,现在因为用的 jdk 是 1.8,所以改为 1.8)

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
  </properties>
<!-- jdk 版本改为 1.8 -->
  <properties>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  <maven.compiler.source>1.8</maven.compiler.source>
  <maven.compiler.target>1.8</maven.compiler.target>
</properties>
2. 设置单元测试的版本

如果想用单元测试,现在已经需要使用 4.12 版本了,如果默认是 3.x 版本,则需要修改一下。

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
<!-- junit 版本改为 4.12 -->
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
3. 删除 pluginManagement 标签

这个标签里的内容是和插件相关的,我们用不上。(可能是pom.xml中的 33~65 行)

<!-- 将这个标签及标签中的内容全部删除 -->
  <pluginManagement>
    ...
  </pluginManagement>
4. 添加 web 部署的插件

Maven 的 Web 项目是需要服务器的支持,所以还需要将服务器集成进来。

<build> 标签中添加 <plugins> 标签。再将所需要的插件放进去即可。

  1. Jetty 插件
<!-- 设置在plugins标签中 -->
<plugin>
    <groupId>org.mortbay.jetty</groupId>
    <artifactId>maven-jetty-plugin</artifactId>
    <version>6.1.25</version>
    <configuration>
        <!-- 热部署,每10秒扫描⼀次 -->
        <scanIntervalSeconds>10</scanIntervalSeconds>
        <!-- 可指定当前项⽬的站点名 -->
        <contextPath>/test</contextPath> 
        <connectors>
            <connector
implementation="org.mortbay.jetty.nio.SelectChannelConnector">
                <port>9090</port> <!-- 设置启动的端⼝号 -->
            </connector>
        </connectors>
    </configuration>
</plugin>
  1. Tomcat 插件
<!-- 设置在plugins标签中 -->
<plugin>
    <groupId>org.apache.tomcat.maven</groupId>
    <artifactId>tomcat7-maven-plugin</artifactId>
    <version>2.1</version>
    <configuration>
        <port>8081</port> <!-- 启动端⼝ 默认:8080 -->
        <path>/test</path> <!-- 项⽬的站点名,即对外访问路径 -->
        <uriEncoding>UTF-8</uriEncoding> <!-- 字符集编码 默认:ISO-8859-1 -->
        <server>tomcat7</server> <!-- 服务器名称 -->
    </configuration>
</plugin>
Maven 插件

maven 有哪些可以使用的插件,并且这些插件如何使用(如何加入pom.xml并配置),可以进入 maven 的官网查看。

  • https://maven.apache.org/

从官网左侧栏找到 plugins 进入,就可以看到哪些插件可用,可以看到上面的 jettytomcat,点击进去,可以看到如何使用。

如果已经知道有这样的插件,比如 tomcat,可以直接进入插件的官网,比如 tomcat:https://tomcat.apache.org/ ,进入后,再左侧看到 Maven Plugin ,点击进去即可获得相关使用资料信息。

修改了 pom.xml 会自动下载依赖,但有时候会下载得很慢,甚至下载不成功。pom.xml 如果显示是红色的,可能就是下载失败了的。

启动 web 项目
  1. 点击右上角 Add Configurations,打开 Run/Debug Configurations 窗口。

  2. 点击 + 号,选择 Maven

  3. Jetty 插件配置:Name处填写 jetty(名称自定义)。Command line:处填写 jetty:run(执行的命令;表示通过 jetty 的方式启动项目),点击 Apply --> OK

    • 也可以输入命令指定端口启动: jetty:run -Djetty.port=9090(需要将插件配置中的 port 标签去掉,因为这两个地方只需要有一个地方写端口)。
  4. 此时会回到主界面,原先右上角的 Add Configurations 就发生了变化,变为了第 3 步Name中设置的动作名,且右侧出现了两个按钮,一个是 RUN(普通模式),另一个是 Debug(调试模式)

  5. 点击 RUN ,若显示如下信息则运行成功

    [INFO] Starting jetty 6.1.25 ...
    [INFO] jetty-6.1.25
    [INFO] No Transaction manager found - if your webapp requires one, please configure one.
    [INFO] Started SelectChannelConnector@0.0.0.0:9090
    [INFO] Started Jetty Server
    [INFO] Starting scanner at interval of 10 seconds.
    
  6. 在浏览器中输入:localhost:9090/test/index.jsp127.0.0.1:9090/test/index.jsp 即可访问。(index.jsp 文件中是输出了一个 “Hello world!”)

    <html>
    <body>
    <h2>Hello World!</h2>
    </body>
    </html>
    
    • /test 是在 pom.xml 中 jetty 插件中的 <contextPath> 中配置的。
    • 9090 是在 pom.xml 中 jetty 插件中的 <port> 中配置的。
    • 运行 jetty 后,修改 pom.xml 中 jetty 插件的配置,并不会马上生效。需要重新启动运行(RUN)才能生效。

如果是用tomcat,则上面第3步中 Command line: 中填写 tomcat7:run 即可。

[INFO] --- tomcat7-maven-plugin:2.1:run (default-cli) @ IDEA-maven-webapptest01 ---
[INFO] Running war on http://localhost:8081/test
[INFO] Creating Tomcat server configuration at F:\coding\IDEA-maven-webapptest01\target\tomcat
[INFO] create webapp with contextPath: /test
二月 12, 2022 10:39:09 下午 org.apache.coyote.AbstractProtocol init
信息: Initializing ProtocolHandler ["http-bio-8081"]
二月 12, 2022 10:39:09 下午 org.apache.catalina.core.StandardService startInternal
信息: Starting service Tomcat
二月 12, 2022 10:39:09 下午 org.apache.catalina.core.StandardEngine startInternal
信息: Starting Servlet Engine: Apache Tomcat/7.0.37
二月 12, 2022 10:39:09 下午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["http-bio-8081"]

浏览器中输入以下网址进行访问

localhost:8081/test/index.jsp

或

http://127.0.0.1:8081/test/index.jsp

jetty 和 tomcat 可以同时启动,只要端口不一样即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值