最近开始集中精力搞java的开源项目,在这时记录一下使用mvn创建java工程的比较简单的流程,以备不时之需,适用于我等java小白~~~
我们之前参考官网就好: Installing Apache Maven
groupId 包名
和artifactId 工程名也就是jar包的名称
。
maven.compiler.source
和 mavin.compiler.target
到1.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>
scope
和systempath
属性加持。
<!--使用本地jar包,非mvn库中的--> <dependency> <groupId>org.apache.bookkeeper</groupId> <artifactId>bookkeeper-server</artifactId> <version>${bookkeeper.version}</version> <scope>system</scope> <systemPath>${bookkeeper.localjar}</systemPath> </dependency>
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.jarjava -cp xxxx:xxxx
lib
的目录;mvn dependency:copy-dependencies -DoutputDirectory=[上面创建的lib目录的全路径]
这条命令将把在pom.xml
文件中dependencies
下面的依赖的jar包自动拷贝到lib目录下;
-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