使用maven来新建一个java项目 博客分类: maven maven
程序员文章站
2024-03-13 14:03:09
...
本教程将会讲解如何用maven来创建一个java项目,并把项目导入到eclipse中,并利用maven来打成jar包。
本教程用到的开发工具:
1.Apache Maven 3.3.3
2.Eclipse Mars Release (4.5.0)
3.JDK 7
1. 使用一个maven的其中一个模板来创建一个java项目
首先来到你要新建项目的文件目录,打开命令行窗口, 在命令行窗口中,输入如下的命令:
以上命令就是告诉maven按照maven-archetype-quickstart模板来创建一个java项目,如果你没有指定archetypeArtifactId选项的话,系统将会列出所有的maven模板。
举个例子:
上面的例子中,就创建了一个NumberGenerator的java项目,项目的目录结构就都创建好了。
2. 项目目录结构如下:
使用mvn archetype:generate和maven-archetype-quickstart模板得到的结果:
NumberGenerator
|-src
|---main
|-----java
|-------com
|---------luchenghao
|-----------App.java
|---test
|-----java
|-------com
|---------luchenghao
|-----------AppTest.java
|-pom.xml
Maven目录链接:http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html
Pom Guide链接:http://maven.apache.org/guides/introduction/introduction-to-the-pom.html
生成的pom.xml文件:
3. Eclipse IDE
使用下面的命令把NumberGenerator项目转换成eclipse项目
这个命令会产生eclipse项目所需要的.project和l.classpath文件
项目结构如下:
按照如下步骤,把项目导入到eclipse中, 选择“File -> Import… -> General->Existing Projects into Workspace”
4. 更新POM文件
原始的pom文件比较简单,通常情况下,我们需要添加一个plugin来告诉maven使用哪个版本的jdk来编译我们的项目(默认的jdk是1.4的,这个比较老了)
然后把junit的version也从3.8.1更新到4.11
更新之后的完整的pom文件如下:
然后在命令行,再次执行命令:mvn eclipse:eclipse,Maven会去下载相应的plugin和依赖的jar包。
5. 写业务逻辑
基于TDD(Test Driven Development)测试驱动开发原则,先更新一下UnitTest类。
AppTest.java文件:
业务逻辑类App.java
6.打jar包
在项目当前目录下面:
C:\Users\e611265\workspace\NumberGenerator>pwd
C:\Users\e611265\workspace\NumberGenerator
执行如下命令:
打出来的jar包,在target的目录下面, 参考如下:
7. Demo
执行如下java命令:
当前目录:C:\Users\e611265\workspace\NumberGenerator>
项目下载链接:
http://dl.iteye.com/topics/download/8e33c5d7-03d2-3638-8f44-e3095adbb1ca
本教程用到的开发工具:
1.Apache Maven 3.3.3
2.Eclipse Mars Release (4.5.0)
3.JDK 7
引用
注意:
在项目开始之前,请确保你已经在开发环境中安装了Maven,你可以在控制台输入:mvn --version 来查看是否安装了maven,如果提示mvn command not find的话,请自行google如何安装maven
在项目开始之前,请确保你已经在开发环境中安装了Maven,你可以在控制台输入:mvn --version 来查看是否安装了maven,如果提示mvn command not find的话,请自行google如何安装maven
1. 使用一个maven的其中一个模板来创建一个java项目
首先来到你要新建项目的文件目录,打开命令行窗口, 在命令行窗口中,输入如下的命令:
mvn archetype:generate -DgroupId={project-packaging} -DartifactId={project-name} -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
以上命令就是告诉maven按照maven-archetype-quickstart模板来创建一个java项目,如果你没有指定archetypeArtifactId选项的话,系统将会列出所有的maven模板。
举个例子:
mvn archetype:generate -DgroupId=com.luchenghao -DartifactId=NumberGenerator -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false [INFO] Scanning for projects... Downloading:xxx [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building Maven Stub Project (No POM) 1 [INFO] ------------------------------------------------------------------------ [INFO] [INFO] >>> maven-archetype-plugin:2.0:generate (default-cli) > generate-sources @ standalone-pom >>> [INFO] [INFO] <<< maven-archetype-plugin:2.0:generate (default-cli) < generate-sources @ standalone-pom <<< [INFO] [INFO] --- maven-archetype-plugin:2.0:generate (default-cli) @ standalone-pom -- - [INFO] Generating project in Batch mode [INFO] ------------------------------------------------------------------------- --- [INFO] Using following parameters for creating project from Old (1.x) Archetype: maven-archetype-quickstart:1.0 [INFO] ------------------------------------------------------------------------- --- [INFO] Parameter: groupId, Value: com.luchenghao [INFO] Parameter: packageName, Value: com.luchenghao [INFO] Parameter: package, Value: com.luchenghao [INFO] Parameter: artifactId, Value: NumberGenerator [INFO] Parameter: basedir, Value: C:\Users\e611265\workspace [INFO] Parameter: version, Value: 1.0-SNAPSHOT [INFO] ********************* End of debug info from resources from generated POM *********************** [INFO] project created from Old (1.x) Archetype in dir: C:\Users\e611265\workspa ce\NumberGenerator [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 24.356 s [INFO] Finished at: 2017-02-08T15:37:28+08:00 [INFO] Final Memory: 10M/27M [INFO] ------------------------------------------------------------------------
上面的例子中,就创建了一个NumberGenerator的java项目,项目的目录结构就都创建好了。
2. 项目目录结构如下:
使用mvn archetype:generate和maven-archetype-quickstart模板得到的结果:
引用
NumberGenerator
|-src
|---main
|-----java
|-------com
|---------luchenghao
|-----------App.java
|---test
|-----java
|-------com
|---------luchenghao
|-----------AppTest.java
|-pom.xml
Maven目录链接:http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html
Pom Guide链接:http://maven.apache.org/guides/introduction/introduction-to-the-pom.html
生成的pom.xml文件:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.luchenghao</groupId> <artifactId>NumberGenerator</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <name>NumberGenerator</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> </project>
3. Eclipse IDE
使用下面的命令把NumberGenerator项目转换成eclipse项目
mvn eclipse:eclipse
这个命令会产生eclipse项目所需要的.project和l.classpath文件
项目结构如下:
按照如下步骤,把项目导入到eclipse中, 选择“File -> Import… -> General->Existing Projects into Workspace”
4. 更新POM文件
原始的pom文件比较简单,通常情况下,我们需要添加一个plugin来告诉maven使用哪个版本的jdk来编译我们的项目(默认的jdk是1.4的,这个比较老了)
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration> <source>1.7</source> <target>1.7</target> </configuration> </plugin>
然后把junit的version也从3.8.1更新到4.11
<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency>
更新之后的完整的pom文件如下:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.luchenghao</groupId> <artifactId>NumberGenerator</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <name>NumberGenerator</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration> <source>1.7</source> <target>1.7</target> </configuration> </plugin> </plugins> </build> </project>
然后在命令行,再次执行命令:mvn eclipse:eclipse,Maven会去下载相应的plugin和依赖的jar包。
5. 写业务逻辑
基于TDD(Test Driven Development)测试驱动开发原则,先更新一下UnitTest类。
AppTest.java文件:
package com.luchenghao; import org.junit.Assert; import org.junit.Test; /** * Unit test for simple App. */ public class AppTest { @Test public void testLengthOfTheUniqueKey() { App obj = new App(); Assert.assertEquals(36, obj.generateUniqueKey().length()); } }
业务逻辑类App.java
package com.luchenghao; import java.util.UUID; /** * Hello world! * */ public class App { public static void main( String[] args ) { System.out.println( "Hello World!" ); App obj = new App(); System.out.println("Unique ID : " + obj.generateUniqueKey()); } public String generateUniqueKey() { String id = UUID.randomUUID().toString(); return id; } }
6.打jar包
在项目当前目录下面:
C:\Users\e611265\workspace\NumberGenerator>pwd
C:\Users\e611265\workspace\NumberGenerator
执行如下命令:
mvn package ...... [INFO] Building jar: C:\Users\e611265\workspace\NumberGenerator\target\NumberGen erator-1.0-SNAPSHOT.jar [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 04:00 min [INFO] Finished at: 2017-02-08T20:33:29+08:00 [INFO] Final Memory: 8M/26M [INFO] ------------------------------------------------------------------------
打出来的jar包,在target的目录下面, 参考如下:
7. Demo
执行如下java命令:
当前目录:C:\Users\e611265\workspace\NumberGenerator>
C:\Users\e611265\workspace\NumberGenerator>java -cp target/NumberGenerator-1.0-S NAPSHOT.jar com.luchenghao.App Hello World! Unique ID : 509351b1-3c5d-4b79-b489-220ccea9c38d
项目下载链接:
http://dl.iteye.com/topics/download/8e33c5d7-03d2-3638-8f44-e3095adbb1ca
上一篇: 详析Spring中依赖注入的三种方式
推荐阅读
-
项目打包,报软件包、类不存在问题排查过程 博客分类: JAVA进阶故障排查 maven打包失败找不到软件包编译失败
-
使用Eclipse构建Maven的SpringMVC项目 博客分类: IDEJava maveneclipsespring
-
maven构建项目引用spring找不到org.springframework.transaction 博客分类: java transactionspringframeworkmaven
-
使用maven 如何生成源代码的jar包 博客分类: Java WebJava maven打包源码打包源代码sourcejarsources.jar
-
使用maven 如何生成源代码的jar包 博客分类: Java WebJava maven打包源码打包源代码sourcejarsources.jar
-
使用maven 容易遇到的问题 博客分类: Java Web mavennexus私服jar包失败lastUpdated
-
使用maven打出独立应用程序的jar包 博客分类: Java maven配置管理log4jXMLApache
-
使用maven打出独立应用程序的jar包 博客分类: Java maven配置管理log4jXMLApache
-
在 IntelliJ IDEA 中加快 Maven 项目的单元测试编译速度 博客分类: Java
-
在 IntelliJ IDEA 中加快 Maven 项目的单元测试编译速度 博客分类: Java