在项目开发中,项目用maven管理,是一个maven项目。
通常状况下jar包均可以使用pom.xml来配置管理,但也有一些时候,咱们项目中使用了一个内部jar文件,可是这个文件咱们又没有开放到maven库中。
咱们会将文件当到咱们项目WEB-INF/lib中。
若是咱们不对pom.xml进行特殊配置的话,maven打包是不会自动去引用和编译lib中的jar文件的,因此须要咱们修改下pom.xml文件。java
不过在3.1版本之后maven-compiler-plugin将compilerArguments定为过期了,建议你们按下面的方法写。
其中表示javac平时用空格隔开的的每个参数。linux
<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包的错误。web
还有更为简单的方法,就是在终端terminal中输入:mvn install:install-file -Dfile=D:\myeclipse\libs\VATServerIntf_1.3_20160815_5890.jar -DgroupId=com.ktyh.spring -DartifactId=VATServerIntf -Dversion=1.0 -Dpackaging=jarspring
经过执行这个命令,该jar包就已经加入到你本地的mvn库了,而后在dependency中引入一下:apache
<dependency> <groupId>com.ktyh.spring</groupId> <artifactId>VATServerIntf</artifactId> <version>1.0</version> </dependency>
这样就OK了
windows
另外科普一下,maven的目录约定:
pom.xml所在的目录应为项目的根目录,假设该目录为${proj-dir},那么Maven有如下假设:服务器
${proj-dir}/src/main/Java —— 存放项目的.java文件。app
${proj-dir}/src/main/resources —— 存放项目资源文件,如spring, hibernate配置文件。eclipse
${proj-dir}/src/test/jave —— 存放全部测试.java文件,如JUnit测试类。webapp
${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作的事情一点也很多,只是都对用户隐蔽起来了,它只要求你遵循它的约定。