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

最近开始集中精力搞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或更高。

    1.8                           1.8
    
  • 如果你的工程需要第三方依赖,需添加依赖到之间

    
                  
          junit       
          junit       
          4.11       
          test          
                    
       
    
  • 如果需要依赖本地的jar包,而非mvn库中的,则需要使用如下形式,需要scopesystempath属性加持。

       
       
         org.apache.bookkeeper
          bookkeeper-server
          ${bookkeeper.version}
          system
          ${bookkeeper.localjar}
          
    
  • 对于最终编译产生的jar, 在通过java -jar执行时,可通过pom.xml指定生成的jar中的主类

    如果不配置这个,在最后执行的时候需要加上类名:java -jar xxxx com.mytest.App

    
              
                org.apache.maven.plugins
                maven-jar-plugin
                3.0.2
                
                
                    
                        true
                            com.mytest.App
                            
                        
                    
                         
    
编译
  • 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
    

你可能感兴趣的:(使用mvn创建java工程的极简教程)