在项目开发中,项目用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做的事情一点也不少,只是都对用户隐蔽起来了,它只要求你遵循它的约定。
相关推荐
主要介绍了解决idea使用maven编译正常但是运行项目时却提示很多jar包找不到的问题,本文分多种情形给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
springboot 项目编译后无法扫描加载到子jar包中的注解解决方法
2.7. 使用maven编译项目代码注意事项 17 3. 构建项目规范说明 18 3.1. 项目目录结构 18 3.2. 设置groupId, artifactId规范 20 3.3. 在Eclipse要引用的jar包设置规范 20 3.4. MIA_LIB维护更新规范 22 4. 参考资料链接...
主要介绍了Spring boot打包jar分离lib和resources方法实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
目录 1 Xjar 介绍 2 如何使用 xjar v2.06 2.1 导入pomx (可以的话直接看3) 不行接着往下 ...基于对JAR包内资源的加密以及拓展ClassLoader来构建的一套程序加密启动,动态解密运行的方案,避免源码泄露或反编译。 功能
Pom:文件夹,jar和war文件,mavenProject:一个项目,可以放jar和war包,通过pom,一般新创建的maven Project是POM 3.4.创建一个Maven Model 最外面的项目是MavenProject,其它的全部是Maven Model 3.4.1.创建JAR 目录...
Apache Maven一个潜在的基于java的apache ant的构建工具的替代者...这个好处导致的结果就是,用maven编译的项目在发布的时候只需要发布源码,小得很,而反之,ant的发布则要把所有的包一起发布,显然maven又胜了一筹。
编译Think in java 源代码 1.下载源码,按要求安装编译...4.修改pom.xml引入且少的jar包(xom.jar、swt.jar、javassit.jar) 5.新建lib目录,将tools.jar、javaw.jar拷贝至lib目录,工程内引入缺少的jar包 6.排错、编译
boot目录中有一个.jar包,他是maven自己使用的jar包 conf目录为配置目录,你可以在里面进行maven的配置 lib包存储着maven的依赖,因为maven自己也是java构建的 复制当前的目录(注:最好不要有中文) 右键此电脑-->...
这是自己本机编译的JMeterAMQP.jar,放置位置为 jmeter安装目录中的lib/ext中,可用于测试rabbitmq等 以下为自己的编译方法: 源码地址:https://github.com/jlavallee/JMeter-Rabbit-AMQP 环境需求:jdk 1.8,...
资源是liunx环境下已编译好的gdal jar包和...使用时(针对Java项目),将jar导入项目(也可以使用maven导入依赖),将so文件放入到java.library.path目录下,一般是usr/lib等,代码使用时System.loadLibrary()加载即可。
1. 在项目根目录下,写一个ant文件,把常用命令列出来 ...arg line="/c maven update-lib"/> </exec> </target> </project> 2. 使用eclipse的ant view,可以看到并执行上面的命令
XJar是基于对JAR包内部资源的加密以及扩展ClassLoader来构建的一套程序加密启动,动态解密运行的方案,避免初始化或反向编译,支持Spring Boot JAR安全加密运行,同时支持其原生JAR。更多文档请点击: 环境依赖 ...
为了方便使用,项目中依赖但是MAVEN远程库中没有的的jar包,在项目中会通过mvn指令把第三方的jar包打包到本地库中,然后和其他的jar库使用相同的步骤使用. NOTICE: 首先应该确保机器上已经安装并配置好了 maven ...
支持加密WEB-INF/lib或BOOT-INF/lib下的依赖jar包。环境依赖:JDK 1.8 +本工具使用AES算法加密class文件,密码是保证不被破解的关键,请保存好密码,请勿泄漏。密码一旦忘记,项目不可启动且无法恢复,请牢记密码。...
xml java系统源码 ClassFinal 介绍 ClassFinal是一款java class文件安全加密工具,支持直接加密jar包或war包,无需修改任何项目代码,兼容spring-framework;...支持加密WEB-INF/lib或BOOT-INF/lib下的
memcached session manager 1.9.6 适用于 tomcat 8 各版本 memcached session manager原...各个序列化方式所需要的包我已经打包好了 ,直接拷贝对应包到tomcat8的lib文件夹下即可 有问题邮件联系吧 99107247@qq.com
其中QueryDatabaseAuthenticationHandler这个类是自定义构建的,在cas/WEB-INF/lib/cas-jdbc-1.0.0.jar里面,有兴趣的同学可以发编译看下,关于几个属性的说明 1. dataSource: 数据源,配置MySQL的连接信息 2. ...
项目描述 spring boot集成sigar极简入门实例 获取服务器CPU、内存、网卡、计算机等相关信息 ...项目采用maven管理jar包版本依赖,编译项目自动下载相关版本jar包 资源包文件(可选) 位于工程目录lib文件夹下
spring-struts2-mybatis-sqlite简单工程, 1.里面包含编译好的war,可以直接部署到maven...2.可以解压war里面有lib包是使用到jar包, 3.工程是maven工程。如果你有maven服务器,可以直接运行。 4.有问题可以留言联系我。