`
yourenyouyu2008
  • 浏览: 286804 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

maven问题记录

 
阅读更多

1)maven大大简化了classpath的配置,使得任何java工程的classpath文件都是一样的。

更正:profile对eclipse project起作用 但必须是默认的。

<activation>
    <activeByDefault>true</activeByDefault>
   </activation>

这样不用maven命令就能使用mavne依赖,比如testng使用maven依赖,把testng环境依赖的jar都放到classpath,而真正发布时不应该把这些testng依赖的jar发布,这时发布时使用 dev profile就不会发布测试环境依赖的jar

  <profile>
   <id>unitest</id>
   <activation>
    <activeByDefault>true</activeByDefault>
   </activation>
   <dependencies>
    <dependency>
     <groupId>org.iata</groupId>
     <artifactId>ios-test</artifactId>
    </dependency>
   </dependencies>
  </profile>

<!-- 发布环境不依赖测试环境-->
   <profile>
   <id>dev</id>
  </profile>

 

2)版本控制:高版本覆盖低版本。maven会传递依赖,两个不相关的jar都传递依赖了同一个jar,但可能依赖jar的版本不同,这时高版本会覆盖低版本。

3)过滤依赖:由版本控制引入的高版本覆盖低版本,导致使用低版本的jar被迫使用依赖的高版本jar,这可能使用低版本依赖的jar不能正常运行,如果高版本jar运行时不会使用,就可以通过exclusions过滤掉高版本jar。

示例 jpa hibernate实现 3.3.2.ga使用高版本的javasist,而seam使用的是低版本的javasist,这样导致seam也被迫使用高版本的javasist而出现错误。

<dependency>
   <groupId>org.hibernate</groupId>
   <artifactId>hibernate-entitymanager</artifactId>
   <version>3.3.2.GA</version>
   <type>jar</type>
   <scope>compile</scope>
   <exclusions>
    <exclusion>
     <artifactId>javassist</artifactId>
     <groupId>javassist</groupId>
    </exclusion>
   </exclusions>
  </dependency>

4)provided不会将jar加入到classpath中

 

5)文件替换(不是文件内容中变量替换),同时支持maven和非maven环境

将文件 A

resources/config/config.xml

用文件 B

resources/testconfig/config.xml

替换,A中不带变量,这样可以在非maven使用,B中带变量,必须使用maven变量替换,要同时支持两种都能使用,那么得将maven替换后的B文件覆盖A文件。通过resource的targetPath属性实现,targetPath用来指定文件放到那里,下面示例中的<targetPath>config</targetPath>会将testconfig\config.xml文件放到classes\config下面,targetPath中指定的是相对于输出根的目录。

        <profile>
            <id>gaoduan</id>
            <properties>
                <jdbc.url>jdbc:mysql://192.168.23.48:3306/oel_gaoduan_online?characterEncoding=UTF8</jdbc.url>
                <redis.ip>192.168.20.186</redis.ip>
                <redis.port>6385</redis.port>
            </properties>
            <build>
                <resources>
                    <resource>
                        <directory>src/main/resources</directory>
                        <excludes>
                            <exclude>config.xml</exclude>
                        </excludes>
                    </resource>

                    <resource>
                        <directory>src/main/resources/testconfig</directory>
                        <includes>
                            <include>config.xml</include>
                        </includes>
                        <filtering>true</filtering>
                        <targetPath>config</targetPath>
                    </resource>
                </resources>

6) 2014-7-23 jar项目中java目录下面的非java文件不会被打包到jar中,将非java文件安装对应的目录建在resources下面即可

7)freemarker资源替换问题

http://blog.csdn.net/huyouheng/article/details/7285532

  • 大小: 31 KB
分享到:
评论

相关推荐

    maven学习记录

    ### Maven简介 Maven是一款由Apache组织开发的项目管理和整合工具。它可以帮助开发者轻松地管理项目的构建、依赖关系以及文档等。Maven的核心优势在于它能够自动化构建过程,并且通过预定义的生命周期来规范项目的...

    Maven学习记录(一):安装与环境配置

    ** Maven学习记录(一):安装与环境配置 ** Maven是Java开发中不可或缺的构建工具,它通过统一的项目对象模型(Project Object Model,POM)管理项目的构建、报告和依赖关系,极大地简化了项目的构建流程。这篇...

    maven项目学习笔记记录

    **Maven项目学习笔记记录** 在软件开发领域,Maven是一个强大的项目管理和构建工具,尤其在Java开发中广泛使用。本笔记将深入探讨Maven的核心概念、主要功能以及实际应用场景,帮助你更好地理解和掌握这一重要工具...

    maven3.0版本下载

    5. 其他文档和资源文件,如README和CHANGES,记录了版本变更和使用指南。 总的来说,Maven3.0是一个强大且成熟的构建工具,它的出现极大地推动了Java项目的标准化和自动化,而"apache-maven-3.0.5"这个压缩包正是...

    dockerfile-maven-plugin 配置记录

    dockerfile-maven-plugin 支持 maven 直接发布项目至 docker 镜像库

    maven3.6.1和3.6.3安装包

    其中,3.6.3是3.6.x系列中的最新补丁版本,相比3.6.1,它可能包含了更多的安全更新和问题修复。 **安装Maven** 1. **解压**: 首先,你需要解压下载的`apache-maven-3.6.3-bin.zip`或`apache-maven-3.6.1-bin.zip`到...

    maven资源 apache-maven-3.3.9-bin.zip

    2. **更好的错误报告**:增强了错误处理和日志记录,使得问题定位更加容易。 3. **插件管理**:对插件的管理和执行进行了改进,提升了稳定性。 4. **仓库管理**:更新了仓库元数据处理,提高了下载依赖的可靠性。 5....

    maven3.6maven3.6maven3.6

    Maven 3.6在生命周期管理上更加智能,错误处理和日志记录也更加详尽。 **多模块项目**是大型Java项目常见结构,Maven通过聚合项目轻松管理这些模块。在3.6版本中,多模块项目的构建性能得到提升,尤其是在并行构建...

    maven3.8.5压缩包

    - 错误处理和日志记录更加精确,便于开发者定位问题。 - 对于依赖管理和冲突解决,Maven 3.8.5可能引入了新的策略或优化。 - 可能增强了对新版本的Java和其他构建工具的支持。 3. **压缩包内的文件结构** - **...

    maven仓库清理程序

    这个文件记录了Maven尝试获取该依赖的最新时间戳。如果网络不稳定或远程仓库出现问题,这些文件会保留下来,以便下次构建时Maven知道哪些依赖需要重新尝试下载。 2. **_remote.repositories文件**:这些文件包含了...

    apache-maven-3.2.2.zip

    6. **RELEASE-NOTES** 文件:记录了该版本Maven的新增特性、修复的问题以及可能的已知问题。 将这个压缩包解压后,可以通过配置环境变量,将Maven添加到系统路径中,使得在命令行中可以直接使用`mvn`命令。对于...

    maven本地仓库

    初学者在学习Maven时,记录笔记是很有帮助的。这些笔记可能包括对Maven生命周期的理解、各种插件的使用、以及如何解决依赖冲突等问题。例如,了解`clean`、`compile`、`test`、`package`等阶段可以帮助理解Maven如何...

    使用Maven整合ssm

    - 添加log4j.properties进行日志记录。 - 设计数据访问接口(UserDao)和业务服务接口(UserService)及其实现类(UserServiceImpl)。 2. **Spring整合SpringMVC**: - 创建SpringMVC配置文件(spring-mvc.xml...

    maven3.x全版本.zip

    2. **Maven 3.1.1**: Maven 3.1.1 增加了对 Maven 插件生命周期的增强,使得插件能够更好地协作,并修复了一些已知问题,提高了整体稳定性。 3. **Maven 3.2.5**: 在这一版本中,Maven 引入了更好的错误报告和调试...

    maven工作使用的记录

    【标题】:“maven工作使用的记录” 在软件开发过程中,Maven是一个不可或缺的构建工具,尤其对于Java项目而言。它简化了项目的构建、管理和依赖管理流程。Maven使用一种标准化的项目对象模型(Project Object ...

    maven_3.1.1 版本

    Maven 3.1.1 强化了错误报告和日志记录,提供了更清晰的错误信息,帮助开发者更快定位和解决问题。此外,日志输出的格式也有所调整,更便于调试和分析。 **5. ** **性能提升** 相比之前的版本,Maven 3.1.1 在处理...

    maven 3.3.9

    3.3.9 版本对错误报告和日志记录进行了改进,使开发者更容易定位和解决问题。 在使用 `apache-maven-3.3.9` 压缩包时,通常包括以下文件和目录: - `bin` 目录:包含可执行脚本,用于启动Maven。 - `conf` 目录:...

    免费的maven3.2.5

    “._apache-maven-3.2.5”则是Mac OS X系统中的一种元数据文件,用于记录Finder(文件管理器)的一些属性,通常在非Mac系统下可以忽略。 安装与使用Maven3.2.5的步骤通常包括以下几个部分: 1. 下载:从Apache官方...

    基于Springboot的maven项目

    MyBatis可以使用简单的XML或注解进行配置和原始映射,将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。在本项目中,MyBatis作为数据访问层,负责与数据库进行交互。 3. **Maven...

    Maven 使用入门.pdf

    该文件记录了工程的各种配置信息以及依赖关系。 - Maven 为工程提供了统一的目录结构,如 `src/main/java` 用于存放主应用代码,`src/test/java` 存放测试代码等。 3. **提供高质量的工程信息**: - Maven 能够...

Global site tag (gtag.js) - Google Analytics