GroupID是项目组织唯一的标识符,实际对应JAVA的包的结构,是main目录里java的目录结构。 使用Maven目录:
3.1 使用maven建立自己的项目 3.2 使用mvc compile进行源码编译 3.3 使用mvc test-compile编译测试源码 3.4 使用mvc test编译源码和测试源码进行测试 3.5 使用mvn package进行项目打包 3.6 使用mvn install安装jar包到maven的本地仓库 3.7 使用mvn deploy可以安装当前项目到远程仓库 3.8 使用mvn clean可以清除存放临时文件的target目录 3.9 把资源文件一并打到jar包中 3.10 过滤资源文件 3.10.1 使用pom.xml和settings.xml中的元素element作为属性 3.10.2 使用外部文件的属性关联 3.10.3 使用系统属性 3.11 在pom.xml中定义project的外部依赖包 3.12 使用mvn dependency:tree可以查看一个项目的依赖关系 3.13 修改Maven同时下载artifact的最大数 3.14 在断开网络的情况下执行Maven指令 3.15 构建自己的archetype 3.16 使用mvn javadoc:jar生成javadoc 3.17 使用mvn dependency:sources下载源码
3.1 使用maven建立自己的项目(1)切换到项目所在的目录,如:d:\\develop\\apps (2)执行如下指令: mvn archetype:generate 这样就可以根据提示来建立一个maven项目 后面可以接很多参数,常用的有: -DgroupId=com.company.app 组id -DartifactId=app 项目名称,maven会根据这个名称在当前目录下新建一个名为该名称的目录用于建立项目 -DinteractiveMode=false 是否已交互模式进行,如果是false的话就会采用默认设置建立项目 以下是一个示例:
运行上面的代码就会在d:\\develop\\apps下面新建一个名为jxc的maven项目 上面建立的只是一个简单的java应用,那如果我要建立一个web应用该如何呢?以下是一个示例:
其实使用Maven建立简单项目时是省略了参数archetypeArtifactId,当没有指定该参数时默认将使用maven-archetype-quickstart。所以要把上面建立一个普通java应用的Maven项目的指令写完整的话就应该是:
从上面我们可以看出要建立什么样的项目就需要使用什么样的archetype,archetype就是Maven定义好的项目类型的模板,一个对应项目的目录架构。archetype是通过参数archetypeArtifactId来指定的。除了上面介绍的两种archetype之外,Maven还为我们提供了以下几种archetype。
在后续的内容中将介绍关于如何构建自己的archetype的内容。 3.2 使用mvc compile进行源码编译在目录d:\\develop\\apps下面建立了项目jxc之后,我们就可以进入目录d:\\develop\\apps\\jxc执行指令mvn compile进行编译了。编译后的文件将放在项目根目录下的target目录中。
3.3 使用mvc test-compile编译测试源码在目录d:\\develop\\apps下建立了项目jxc之后,我们就可以在cmd中切换目录到d:\\develop\\apps\\jxc,然后执行指令mvc test-compile进行测试源码编译。
3.4 使用mvc test编译源码和测试源码进行测试在目录d:\\develop\\apps\\jxc下面执行指令mvc test将先编译源码,再编译测试源码,然后执行测试代码。
3.5 使用mvn package进行项目打包在项目所在的目录执行指令mvn package可以进行项目打包,打包方式是在项目根目录下的pom.xml文件中的packaging元素定义的,如果定义为jar则打为jar包,如果是war则打为war包,如果是ear则为ear包。如果pom.xml中没有定义packaging元素,则会使用默认值jar。打包后的文件将会放在项目根目录下的target目录下。打包后的文件名将是在pom.xml文件中定义的artifactId-version的形式,比如在pom.xml中定义的artifactId是hello,定义的version是1.0,则打包后生成的文件的名称将是hello-1.0。
3.6 使用mvn install安装jar包到maven的本地仓库使用mvn install可以把mvn package打包好的jar安装到maven的本地仓库。本地仓库默认是在~/.m2/repository,可以在maven安装目录下的conf/settings文件中的localRepository标签中定义本地仓库的路径。 当我们需要安装一个本地jar包到本地资源库的时候我们可以使用“mvn install:install-file”指令,使用该指令时有几个参数需要指定。file:表示本地jar包所在的路径;groupId:表示jar包被安装到本地仓库之后的groupId;artifactId:表示jar包被安装到本地仓库之后的artifactId;version:表示安装到本地仓库之后对应的版本;packging:表示当前组件被引用的类型,既然我们是安装jar包则这里对应的自然是jar了。示例,假如现在我们需要安装一个jar包“c:\jars\abc.jar”到我们的Maven本地仓库,那么我们可以在命令窗口执行以下命令:
这样就会把我们的“c:\jars\abc.jar”以groupId为“com.tiantian”,artifactId为“abc”,version为“1.0”,packaging类型为jar安装到我们的本地仓库,之后我们就可以直接在我们本地的Maven项目中引用该依赖类型了。如:
3.7 使用mvn deploy可以安装当前项目到远程仓库3.8 使用mvn clean可以清除存放临时文件的target目录
3.9 把资源文件一并打到jar包中如果需要把一些资源文件也一并打包到jar包里面的话,需要在${basedir}/src/main下新建一个resources目录,然后把所有的资源文件都放到这个目录中,这样这些文件都会放到类路径下面。如果需要在测试代码中访问到对应的资源,那么相对的就需要在${basedir}/src/test下新建一个resources目录,然后把相应的资源文件放在这个目录下。
3.10 过滤资源文件有的时候有些资源文件中的值我们需要在编译的时候动态的指定,maven允许我们在建立文件的时候以${property_name}的方式指定,这样当我们进行编译的时候就会自动的把property_name对应的值替换${property_name}。这个property可以是pom.xml中定义的值,也可以是settings.xml中定义的值,也可以是定义在外部属性文件中的值,还可以是系统属性。maven这种动态替换属性值的功能默认是关闭的,如果要打开的话需要在项目的pom.xml文件中指定filtering的值为true,默认是false。如下示例:
从上面的文件我们可以看出,filtering这个参数是针对于特定的资源文件目录的,而且我们还可以使用directory来指定资源文件的存放位置,默认是src/main/resources。这个build元素是有默认值的,因为我们需要改变filtering的值,所以需要重新定义build,然后覆盖里面的默认值。
3.10.1使用pom.xml和settings.xml中的元素element作为属性我们可以使用pom.xml文件中的element对应的值来作为属性值。在maven中,使用pom来表示pom.xml中的根元素project,所以我们可以使用${pom.name}来表示project元素下面的name元素,使用${pom.version}来表示project元素下面的version元素。有些元素在pom.xml文件中是没有明确定义的,但是那不代表它们不存在,这是因为它们有一个默认值,像这种元素我们也可以直接拿来使用。同样的我们需要使用settings.xml中的元素的时候可以使用settings前缀来关联,如${settings.localRepository}就是在settings.xml中定义的localRepository元素的值。下面是一组示例,文件都是定义在resources目录下的: 文件application.properties
文件test.txt
在resources目录下定义了上面两个文件之后,在命令行模式下进入pom.xml文件所在的那一级目录,也就是项目的根目录,之后使用mvn compile进行编译,编译后可以到target/classes目录下找到对应的资源文件,打开可以看到如下内容: application.properties文件的内容:
test.txt文件的内容:
如果我们只需要对资源文件进行处理的话也可以使用mvn process-resources指令,该指令是专门用于处理资源文件的,而mvn compile是在编译的时候处理了资源文件。 3.10.2使用外部文件的属性关联要使用外部文件的属性来关联资源文件里面定义的属性值,那么我们就需要告诉maven应该去哪里找这个属性文件,这是通过在pom.xml中指定filter的值来指定的。
下一篇:遍历HashMap的四种方法
相关分类
关闭
站长推荐
|