http://www.24xuexi.com/w/2011-05-04/89264.html
如果网络使用的代理,需要对用户的settings.xml作如下配置(默认位于~/.m2目录下):
<settings>
<proxies>
<proxy>
<active>true</active>
<protocol>http</protocol>
<host>proxy.mycompany.com</host>
<port>8080</port>
<username>your-username</username>
<password>your-password</password>
</proxy>
</proxies>
</settings>
Maven的编译插件默认是JDK 1.4的编译级别,为了让Maven的编译插件使用JDK5.0的编译级别,需要对编译插件作如下配置:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0</version>
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>
</plugins>
</build>
一些IDE没有提供直接创建Maven项目的能力,我们通常的做法是,在命令行创建Maven项目,然后生成特定于IDE的工程定义文件,然后在IDE中打开工程。两个常用的是创建IDE功臣定义文件的命令如下:
mvn idea:idea——用于生成IDEA项目定义文件。
mvn eclipse:eclipse——用于生成Eclipse项目定义文件。
在Maven项目的目录结构中,在src/main/目录下新建一个resources目录,所有放在该目录中的非代码资源会按照原始结构在打包的时候放到JAR(或者WAR等)文件的顶层目录中。在使用mvnpackage命令生成的JAR(或者WAR等)文件中,存在META-INF/MANIFEST.MF文件。我们也可以在resources目录下存放一个META-INF/MANIFEST.MF,并对打包插件进行如下配置,那么Maven在打包的时候就不会自动生成。而是使用用户提供的文件。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifestFile>src/main/resources/META-INF/MANIFEST.MF</manifestFile>
</archive>
</configuration>
</plugin>
另外,在生成的JAR(或者WAR等)文件中的META-INF目录下由一个maven子目录,其中包含了一个pom.xml和pom.properties,这样,这个打包文件就是一个自描述的归档文件。包括groupId、version等信息。
在某些情况下,资源文件中的某些值可能在构建的时候才能确定,比如工程名字、版本信息等等。在这种情况下,可以在资源文件中以${…}的形式定义占位符,在构建的process-resources阶段,Maven会用实际的值去取代占位符。提供占位符确切值的地方可以是:pom.xml中、settings.xml中、外部属性文件中以及系统属性中(经过测试,MANIFEST.MF文件似乎不能进行过滤)。
在Maven构建过程中的process-resources阶段,如果需要执行对占位符的替换操作,需要在pom.xml文件中启用资源的过滤操作:
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
有了如上配置我们在资源文件就可以使用pom已有配置信息
eg:我们在src/main/resources下面建立application.properties文件
# application.properties
application.name=${pom.name}
application.version=${pom.version}
运行:mvn process-resources在target/classes下面的application.properties结果为:
# application.properties
application.name=Maven Quick Start Archetype
application.version=1.0-SNAPSHOT
当然filter还可以用其他的外部文件,不一定来自pom.xml[${pom.name} ]以及setting.xml[${settings.localRepository }]
e.g src/main/filters/filter.properties:
# filter.properties
my.filter.value=hello!
pom.xml:
< build >
< filters >
< filter > src/main/filters/filter.properties </ filter >
</ filters >
< resources >
< resource >
< directory > src/main/resources </ directory >
< filtering > true </ filtering >
</ resource >
</ resources >
</ build >
# application.properties
application.name=${pom.name}
application.version=${pom.version}
message=${my.filter.value}
同样可以在pom文件中直接定义my.filter.value常量< build>
<resources>
<resource>
<directory> src/main/resources </directory>
<filtering> true </filtering>
</resource>
</resources>
</build>
<properties>
<my .filter.value> hello </my.filter.value>
</properties>
效果同样,这样就不需要外部文件了。另外filter还可以来自系统设置以及可以自定义:
# application.properties
java.version=${java.version}
command.line.prop=${command.line.prop}
Maven2中,在pom.xml中插件和依赖的定义非常相像,但是在插件定义(或者配置)中,<groupId>和<version>标签在大多数情况下可以省略。如果你没有指定<groupId>,Maven将默认通过org.apache.maven.plugins或者org.codehaus.mojo的<groupId>标签查找插件。你可以在POM文件中指定一个查找的<groupId>也可以在settings.xml等地方指定;如果你没有指定<version>,Maven将尝试使用插件的最新发布版本。
如果希望查看某个Maven插件的可配置选项有哪些,可以使用mvnhelp:describe命令。示例如下:
mvn help:describe-DgroupId=org.apache.maven.plugins-DartifactId=maven-compiler-plugin -Dfull=true
或者,你也可以在http://maven.apache.org/plugins/查找详细的插件信息。
默认情况下,项目的非代码资源文件放在src/main/resource目录下,测试所需的非代码资源放在src/test/resource目录下。这是定义在SuperPOM文件中的。我们可以改变这个设置,但是不应该这么做。
执行native2ascii命令转换国际化i18n资源文件,添加如下插件配置(使用默认路径需要在src/main下添加native2ascii路径,就不需要配置resource那么复杂了)
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>native2ascii-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>native2ascii</goal>
</goals>
<!-- specific configurations-->
<configuration>
<dest>target/classes</dest>
<encoding>UTF8</encoding>
<includes>
*.properties
</includes>
</configuration>
</execution>
</executions>
</plugin>
执行copy资源文件构建生产环境配置文件 hibernate项
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.2</version>
<executions>
<execution>
<id>prepare-dependencies-repackage-copy</id>
<phase>generate-resources</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<copy todir="target/classes/com/cmcc/hibernate"overwrite="true">
<filesetdir="src/main/java/com/cmcc/hibernate">
<include name="**/*.hbm.xml"/>
</fileset>
</copy>
</tasks>
</configuration>
</execution>
</executions>
</plugin>
最后是项目引用,jar包依赖关系的配置
我们在mvn install后在local repo中生成的jar包也可以被其他项目所引用
<dependency>
<groupId>com.mycompany.app</groupId>
<artifactId>my-app</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
注意scope,这里是compile,如果使用junit,scope是test。
举例说明:如果我们的project需要用到log4j包,那么我们可以先google--"site:www.ibiblio.org maven2 log4j"。Indexof /maven2/log4j/log4j 下面有maven-metadata.xml描述了groupId,artifactId,version等等。获取了这些信息之后,你 就可以在pom.xml中添加依赖
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.12</version>
<scope>compile</scope>
</dependency>
如何发布我的jar包到我的remote repository
你需要在setting.xml中间设置server:
<servers>
<server>
<id>mycompany-repository</id>
<username>jvanzyl</username>
<!--Default value is ~/.ssh/id_dsa-->
<privateKey>/path/to/identity</privateKey>
<passphrase>my_key_passphrase</passphrase>
</server>
</servers>
然后在pom.xml中设置远程url:
<distributionManagement>
<repository>
<id>mycompany-repository</id>
<name>MyCompanyRepository</name>
<url>scp://repository.mycompany.com/repository/maven2</url>
</repository>
</distributionManagement>
分享到:
相关推荐
Maven通过一个叫做pom.xml的项目对象模型文件来配置项目构建的各个方面,其中标签是Maven构建配置的核心部分,它定义了整个构建生命周期中需要执行的指令和任务。 Maven构建包括编译代码、执行测试、打包以及部署等...
一、Idea关联的maven本地仓库配置文件settings.xml (1)必须使用默认文件名 D:\developsoft\javaweb\commonPlugins\maven\apache...pom-maven-springboot-CusConfigV2.xml pom-maven-spring-CusConfigV1不推荐使用.xml
Maven是Java领域最流行的构建工具之一,其核心配置文件是Pom.xml。在Pom.xml文件中,我们可以定义项目的基本信息、依赖关系、构建过程、测试环境等。下面,我们将详细解析Pom.xml文件的各个标签和它们的作用。 1. ...
在Maven的世界里,`pom.xml`和`settings.xml`是两个至关重要的配置文件,它们共同决定了Maven项目的构建过程和环境配置。`pom.xml`(Project Object Model)文件是每个Maven项目的核心,它包含了项目的基本信息、...
Maven的pom.xml配置文件详细配置说明 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=...
pom.xml文件里面主要配置项目开发所需要的依赖包,maven可以管理开发所需的jar包,在线下载jar包,可节省本地的资源空间
Maven 项目 pom.xml 文件中的 parent 标签是 Maven 项目管理依赖的核心组件之一。parent 标签的使用可以简化项目间的依赖管理,使得项目结构更加清晰、易于维护。 Maven 项目中的依赖管理 在 Maven 项目中,依赖...
maven的pom.xml的最详细配置,内含pom的依赖、jdk配置等
maven项目中pom.xml配置文件,包含常用的mybatis,log4j,jdk,mysql连接等依赖
本文将深入探讨Maven工程的核心配置文件——pom.xml,以及它在项目构建过程中的重要作用。 pom.xml,全称Project Object Model(项目对象模型),是Maven项目的灵魂所在。它定义了项目的元数据,包括项目信息、构建...
Maven通过在项目的pom.xml文件中声明依赖,可以自动下载并管理这些依赖。对于ojdbc6.jar的Maven配置,我们需要在pom.xml文件中添加以下依赖: ```xml <groupId>com.oracle.ojdbc</groupId> <artifactId>ojdbc6...
本篇详解主要针对Maven中的核心配置文件——pom.xml进行深入解析,帮助理解和应用其配置。 首先,pom.xml是每个使用Maven的项目的必配文件,它位于项目的根目录下,用于定义项目的构建配置和其他信息。配置文件的...
maven项目的pom.xm,非常齐全,所需的各种jar包都有,的观点观点和额u好肚饿好肚饿的呢就好的好肚饿的好的u好肚饿
maven配置文件pom.xml
maven pom.xml详解
springmvc+hibernate的maven工程pom.xml文件配置
2. 解析`pom.xml`:Maven会读取项目根目录下的`pom.xml`,解析其中的依赖信息。 3. 下载依赖:Maven会根据`pom.xml`中声明的依赖树,从Maven中央仓库或配置的镜像源下载对应的jar包。如果`dependency:get`命令被使用...
pom.xml android maven 工程 如何拿Maven 构建 一个 Android 项目的pom配置
本文将详细介绍如何解决新建Maven项目后POM.xml文件出现错误的情况。 ### 一、理解POM.xml POM.xml是Maven项目的核心配置文件,它定义了项目的构建规则、依赖关系以及其他Maven生命周期所需的信息。当POM.xml文件...
综上所述,“根据pom.xml下载依赖”这一过程是Java开发中的基础步骤,也是Maven的核心功能之一。通过合理配置pom.xml,开发者可以高效地管理项目依赖,保证开发环境的一致性,提升开发效率。在实际工作中,我们还...