前提条件:
- Windows系统下安装好eclipse
- Windows系统下安装好Maven
参考链接: Maven安装教程.
步骤:
- 设置eclipse使用的Maven环境
打开eclipse, 点击Windows–>选择Preferences
左侧找到Maven --> Installations,点击右侧Add
选择Maven的安装目录,我这里是D:\soft\apache-maven-3.3.9
勾选上我们自己安装的Maven,点击Apply
左侧找到Maven–>User Settings, 点击Browse,选择Maven安装目录下的conf\settings.xml , 我这里是D:\soft\apache-maven-3.3.9\conf\settings.xml, 点击Apply and Close
- 使用Eclipse新建Maven工程
点击File --> New -->Other
找到Maven–>Maven Project, 点击Next
这里不用修改,直接点击Next
这里也不用修改,直接点击Next
这是比较重要的一步:
Group Id:是组织名称,一般写公司域名的反写,如:www.baidu.com应该写为com.baidu.www,这里写的是com.test
Artifact Id:是项目名称,写我们的项目名称,这里写的是HelloWorld
写好Group Id和Artifact Id后,点击Finish
Maven项目自动构建完成后,会出现如下方框中的目录。
其中pom.xml是一个很重要的文件,项目所依赖的jar包都在这里配置
- 编辑pom.xml
编辑pom.xml:双击pom.xml文件–>在eclipse右下方找到pom.xml
修改pom.xml,在 </ project >前增加下面内容, 其中< mainClass >与< /mainClass > 之间的内容表示主类,注意修改为实际工程的主类,改为“主类所在包名.主类名”, 这里改为: com.test.HelloWorld.App, 记得保存文件
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<!-- main()所在的类,注意修改 -->
<mainClass>com.test.HelloWorld.App</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
修改好后,效果如下图:
刷新工程: 右键工程名–>Refresh
Maven工程在构建时已经自动帮我们把打印Hello World的java程序写好。我先现在来执行它:右键src/main/java包下的App.java(注意要是src/main/java包下),Run As -->Java Application
在eclipse内部运行,结果如下:
- 打包Maven工程
复制Maven工程所在的目录 :右键我们的Maven工程HelloWorld–>Properties
点击左侧Resource,Location的内容为我们Maven工程所在的目录,复制Location的路径
按Win + R 输入cmd 调出cmd.exe命令框
刚刚复制的工程路径为 D:\EclipseProject\910\HelloWorld
现在切换到D盘,输入 d:, 回车
输入 cd D:\EclipseProject\910\HelloWorld
打包工程:执行mvn clean package
打包成功会出现如下BUILD SUCCESS字样
查看target目录,出现HelloWorld-0.0.1-SNAPSHOT.jar文件
执行命令:dir target
- 在cmd运行Maven工程
执行命令: java -jar target/HelloWorld-0.0.1-SNAPSHOT.jar
从这里可以看出,在打包后运行的结果与在eclipse内部运行的结果是一致的。
完成!