在项目开发中,项目用maven管理,是一个maven项目。
一般情况下jar包都可以使用pom.xml来配置管理,但也有一些时候,我们项目中使用了一个内部jar文件,但是这个文件我们又没有开放到maven库中。
我们会将文件当到我们项目WEB-INF/lib中。
如果我们不对pom.xml进行特殊配置的话,maven打包是不会自动去引用和编译lib中的jar文件的,所以需要我们修改下pom.xml文件。
修改maven-compiler-plugin的配置,如下:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <source>1.7</source> <target>1.7</target> <encoding>UTF-8</encoding> <compilerArguments> <verbose /> <bootclasspath>${env.JAVA_HOME}/jre/lib/rt.jar</bootclasspath> <extdirs>${project.basedir}/src/main/webapp/WEB-INF/lib</extdirs> </compilerArguments> </configuration> </plugin>
其他配置是我的原来配置,针对lib引用这个问题,只需要增加的是:
<extdirs>${project.basedir}/src/main/webapp/WEB-INF/lib</extdirs>
不过在3.1版本以后maven-compiler-plugin将compilerArguments定为过时了,建议大家按下面的方法写。
其中表示javac平时用空格隔开的的每一个参数。
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <source>1.7</source> <target>1.7</target> <encoding>UTF-8</encoding> <compilerArgs> <arg>-verbose</arg> <arg>-Xlint:unchecked</arg> <arg>-Xlint:deprecation</arg> <arg>-bootclasspath</arg> <arg>${env.JAVA_HOME}/jre/lib/rt.jar</arg> <arg>-extdirs</arg> <arg>${project.basedir}/src/main/webapp/WEB-INF/lib</arg> </compilerArgs> </configuration> </plugin>
其中${project.basedir}一定要写,不然会出现“在windows”下可以正常编译,在Linux服务器上就“有可能”出现编译找不到jar包的错误。
另外科普一下,maven的目录约定:
pom.xml所在的目录应为项目的根目录,假设该目录为${proj-dir},那么Maven有以下假设:
${proj-dir}/src/main/java —— 存放项目的.java文件。
${proj-dir}/src/main/resources —— 存放项目资源文件,如spring, hibernate配置文件。
${proj-dir}/src/test/jave —— 存放所有测试.java文件,如JUnit测试类。
${proj-dir}/src/test/resources —— 测试资源文件。
${proj-dir}/target —— 项目输出位置。
运行一条mvn clean package命令,Maven会帮你清除target目录,重新建一个空的,编译src/main/java类至target/classes,复制src/main/resources的文件至target/classes,编译src/test/java至target/test-classes,复制src/test/resources的文件至target/test-classes;然后运行所有测试;测试通过后,使用jar命令打包,存储于target目录。Maven做的事情一点也不少,只是都对用户隐蔽起来了,它只要求你遵循它的约定。
相关推荐
然后,将这个 JAR 文件复制到你的 Java 安装目录下的 `lib` 或者 `jre/lib/ext` 目录,这样 JAR 文件就可以作为系统扩展被 Java 运行时环境识别。 接下来,如果你的开发环境是 Eclipse,你需要重启 Eclipse,以确保...
《Mahout in Action源代码Maven编译JAR包详解》 Apache Mahout是一个流行的机器学习库,广泛用于数据挖掘和大数据分析。《Mahout in Action》这本书是Mahout技术的权威指南,提供了丰富的示例代码供读者实践。然而...
`lib`中的`jar`(Java Archive)文件是Java类库的集合,包含了编译后的`.class`文件,这些文件是Java应用程序或库运行的基础。`jar`文件的使用极大地简化了代码的分发和管理,因为它们可以作为一个单独的单元进行...
标题中的“tomcat下的lib下的jar包”指的是Apache Tomcat服务器中的`lib`目录下的Java Archive (JAR) 文件。Tomcat是一个流行的开源Web应用程序服务器,遵循Java Servlet和JavaServer Pages(JSP)规范。在Tomcat的...
"解决IDEA使用Maven编译正常但是运行项目时却提示很多jar包找不到的问题" IDEA是IntelliJ开发的一款集成开发环境(IDE),Maven是 Apache 软件基金会的一款基于项目对象模型(POM)的项目管理工具。使用IDEA和Maven...
- **运行阶段**:在部署和运行应用时,使用的是jar包,因为它们包含了编译后的代码,可以直接由Java虚拟机执行。 - **学习和研究**:对于学习Maven的原理或者分析特定库的实现,源码包是必不可少的。 - **发布和分发...
### Spring Boot 编译 JAR 包后无法扫描子 JAR 包中的注解解决方案 在使用Spring Boot进行项目开发时,我们经常会遇到模块化的需求,即一个大型项目被拆分成多个子模块来提高可维护性和灵活性。这些子模块可能通过...
本教程将详细介绍如何在IntelliJ IDEA(IDEA)中利用Maven进行混淆打包的步骤,确保整个过程顺利且有效。 首先,我们需要了解Maven,它是一个强大的项目管理和依赖管理工具。通过在`pom.xml`文件中配置,我们可以...
### 使用Maven编译Hadoop 2.7.1 的详细步骤及注意事项 #### 一、编译前的准备 **1.1 下载并解压Hadoop源码包** 根据作者gyqiang的说明,要编译的是Apache Hadoop 2.7.1版本,该版本发布于2016年1月4日,是当时...
在IT行业中,jar(Java Archive)包是一种标准的文件格式,用于封装Java类库,包含编译后的Java类、资源文件以及元数据。这些jar包是构建和运行Java应用程序的关键组成部分。在您提供的标题和描述中,我们看到一系列...
在Java编程环境中,有时...总结来说,编译和运行带有JAR包的Java程序涉及编译源代码、设置类路径、创建MANIFEST.MF文件指定主类、打包成JAR并最后运行JAR。通过使用IDE或构建工具,这个过程可以变得更加便捷和高效。
“源码”指的是Java项目的源代码,这些代码会被Maven编译并打包。“工具”在这里特指Maven,这是一个强大的构建工具,能够处理项目的构建、依赖管理和打包等任务。 【压缩包子文件的文件名称列表】:“helloWorld”...
在使用IntelliJ IDEA(IDEA)开发基于Maven的Java Web项目时,有时需要将本地的Jar包添加到项目中,特别是在某些依赖库在线不可用或者需要特定版本的本地库时。本文将详细介绍如何解决IDEA中Maven项目无法加入本地...
在“maven2 用于hudson插件开发的jar”这个场景中,我们可以推断这是关于使用Maven2版本来构建Jenkins(前身Hudson)插件的实践。开发者可能需要在他们的环境中安装特定的Maven插件,如`maven-hpi-plugin`,这个插件...
6. **生成的JAR包**:Maven会在项目的`target`目录下生成JAR文件。如果配置正确,这个JAR将是可执行的,你可以通过`java -jar your-jar-file.jar`命令来运行。 注意,`TestTest`可能指的是测试类或者测试用例,对于...
标题 "spring 扫描jar maven 打包" 涉及的是在Java开发中,如何使用Spring框架和Maven工具来构建并打包一个项目,其中包含Spring对jar包的扫描以及Maven的打包流程。这里我们将深入探讨这两个关键概念。 1. **...
保存`pom.xml`后,Maven会自动从本地仓库加载`iptools.jar`,并在编译和运行时使用它。 总的来说,通过以上步骤,你已经成功地在Windows环境下配置了Maven,将自定义jar包注入到了Maven仓库,并学会了在Spring Boot...
通过Maven编译,我们可以避免手动配置环境,简化安装过程,只需解压即可使用,大大提高了部署效率。 在提供的压缩包中,"ik"这个文件可能包含了以下内容: 1. `config` 目录:存放分词器的配置文件,如`IKAnalyzer...
总的来说,"maven-jar包"是一个关于使用Maven构建和管理Java项目的主题,涉及到Maven的基本概念、Eclipse的Maven插件、JAR文件的结构以及Maven插件中与JAR打包相关的配置。对于Java开发者来说,掌握这些知识对于高效...