默认情况下Maven假设项目主代码位于src/main/java目录,我们遵循Maven的约定,创建该目录,然后在该目录下创建子目录com/juvenxu/mvnbook/helloworld,并创建文件HelloWorld.java。
我创建的项目存放在本地E:\work\resource\code,创建好目录和文件后如下
关于java代码有两点需要注意。首先在绝大多数情况下,应该把项目主代码放到src/main/java目录下(遵循Maven的约定),而无需额外的配置,Maven会自动搜寻该目录,找到项目主代码。
其次,该java类的包名是com.juvenxu.mvnbook.helloworld,这与在POM中定义的groupId和artifactId相吻合。
一般来说,项目中的java类的包都应该基于项目的groupId和artifactId,这样更加清晰,更加符合逻辑。
在项目根目录,即E:\work\resource\code\hello-world目录下执行mvn clean compile,输出如下:
clean告诉Maven清理输出目录target/,compile告诉Maven编译项目的主代码,从输出中看到Maven首先执行了clean任务,删除/target目录。默认情况下,Maven构建的所有输出都在target/目录中;接着执行resources任务(未定义项目资源,暂且忽略);最后执行compile任务,将项目主代码编译至target/classe目录(编译好的类为HelloWorld.class)
至此,Maven在没有任何额外的配置的情况下就执行了项目的清理和编译任务。