关于 maven 项目的构建

  • maven 项目是基于约定的。项目的源代码如果不设置的话,会放在 src/main/java 目录下,项目的测试代码如果不设置的话,会放在 src/test/java 目录下,在 main/java/src 下的源文件依赖的 scope 是 compile,在 main/test/src 下的源文件依赖的 scope 是 compile, test。

  • 说完这些,我们来实践一下:

首先,我有一个文件夹(root)来存放 pom.xml 文件,然后我就在该文件夹下新建文件夹 src/main/java 和文件夹 src/test/java 目录。

然后定义 pom.xml 文件为如下代码:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.sinaapp.ibmeye</groupId>
  <artifactId>utils</artifactId>
  <version>1.0</version>
  <packaging>jar</packaging>

  <name>utils</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

</project>

然后,就可以在 src/main/java 文件夹下放我们想要编译的代码了。比如,我们想编译一个在包 com.sinaapp.ibmeye.utils 下的类 HelloWorld,那么我们就可以在 src/main/java 文件下建立 com/sinaapp/ibmeye/utils 目录,然后在该目录下建立一个 HelloWorld.java 的文件。代码如下:

package com.sinaapp.ibmeye.utils;
public class HelloWorld{
    public static void main(String[] args){
        System.out.println("good morning");
    }
}

就在这个时候,我们可以在项目(utils)目录下,运行 mvn clean compile,然后,就会在我们的项目目录下,出现一个target文件夹,这个文件夹中就存在着我们编译好的文件,其建立的目录就是我们的包名。

刚才我们运行的编译,就相当于,在我们的项目目录下运行,javac -d target\classes\ src\main\java\com\sinaapp\ibmeye\utils\HelloWorld.java

这里的 javac 的 -d 参数表示类生成的目录,这里有个很有意思的东西,就是假如你不指定 -d,那么javac会默认你的源代码就在合适的包路径下,编译的时候javac会将生成的类文件直接放在与源文件相同的目录下,如果指定了 -d 那么,那么在 -d 的目录下,javac 会生成包含包路径的类。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值