前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用mvn创建java工程的极简教程

使用mvn创建java工程的极简教程

作者头像
扫帚的影子
发布2020-03-20 17:20:49
7380
发布2020-03-20 17:20:49
举报

最近开始集中精力搞java的开源项目,在这时记录一下使用mvn创建java工程的比较简单的流程,以备不时之需,适用于我等java小白~~~

文中相关代码已上传: https://github.com/DavidLiuXh/ExampleBank
使用mvn创建java工程
安装mvn

我们之前参考官网就好: Installing Apache Maven

创建java工程
  • 命令行执行 mvn archetype:generate -DgroupId=com.mytest -DartifactId=test -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false 至少需要提供 groupId 包名artifactId 工程名也就是jar包的名称
  • 生成目录结构 ./ ├── pom.xml └── src ├── main │ └── java │ └── com │ └── mytest │ └── App.java └── test └── java └── com └── mytest └── AppTest.java
pom.xml配置文件
  • 如果需要使用到java 8的特性,比如lambda表达式,需要调整 maven.compiler.sourcemavin.compiler.target1.8或更高。 <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target>
  • 如果你的工程需要第三方依赖,需添加依赖到<dependencies></dependencies>之间 <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> </dependencies>
  • 如果需要依赖本地的jar包,而非mvn库中的,则需要使用如下形式,需要scopesystempath属性加持。 <!--使用本地jar包,非mvn库中的--> <dependency> <groupId>org.apache.bookkeeper</groupId> <artifactId>bookkeeper-server</artifactId> <version>${bookkeeper.version}</version> <scope>system</scope> <systemPath>${bookkeeper.localjar}</systemPath> </dependency>
  • 对于最终编译产生的jar, 在通过java -jar执行时,可通过pom.xml指定生成的jar中的主类 如果不配置这个,在最后执行的时候需要加上类名:java -jar xxxx com.mytest.App <!--指定生成的jar中的主类--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>3.0.2</version> <configuration> <archive> <manifest> <addClasspath>true</addClasspath> <mainClass>com.mytest.App</mainClass> </manifest> </archive> </configuration> </plugin>
编译
  • pom.xml所在目录下执行 mvn clean package
  • 编译完成生成 target目录, 生成的jar包类似: test-1.0-SNAPSHOT.jar
执行
  • 如果有第三方依赖,在编译时可以选择将第三方依赖全部打包到最终的jar包中;
  • 我们这里选择另外一种方式,执行时执定class path的方式: java -cp xxxx:xxxx
  • 我们需要将所有的第三方依赖的jar包集中到一起:
    1. 创建一个名为lib的目录;
    2. mvn dependency:copy-dependencies -DoutputDirectory=[上面创建的lib目录的全路径] 这条命令将把在pom.xml文件中dependencies下面的依赖的jar包自动拷贝到lib目录下;
  • 执行 下面给出了一个简单的脚本, 先收集lib下面所有的jar包作为-cp的参数 BK_CLASSPATH="" #收集lib下面所有的jar包作为`-cp`的参数 for i in [lib目录的路径]/*.jar; do BK_CLASSPATH=${BK_CLASSPATH}:${i} done #运行test-1.0-SNAPSHOT.jar java -cp ${BK_CLASSPATH}:/home/xx/test/java/test/target/test-1.0-SNAPSHOT.jar com.mytest.App
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文中相关代码已上传: https://github.com/DavidLiuXh/ExampleBank
  • 使用mvn创建java工程
  • 安装mvn
    • 创建java工程
      • pom.xml配置文件
        • 编译
          • 执行
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档