skills_maven
skills_maven
1 如何引入本地jar包,并且maven打包时自动打包到系统运行jar/war包内
按照网上资料,试过下面截图中的方法,但是无法maven打包到jar/war包内:
后来发现可以这样:在pom.xml中引入如下依赖即可解决:
<dependency>
<groupId>com.study</groupId>
<artifactId>bbcodec</artifactId>
<version>0.0.1</version>
<scope>system</scope>
<!-- ${basedir}指该项目所在的根路径; .. 代表 ${basedir} 的上一级目录 -->
<systemPath>${basedir}/../lib/banboocloud_Codec-0.0.1.jar</systemPath>
</dependency>
2 pom.xml中的scope的作用
pom.xml配置文件中,<dependency>
中的<scope>
,它主要管理依赖的生效范围。目前 <scope>
可以使用5个值:
- compile,缺省值,适用于所有阶段,会随着项目一起发布。
- provided,类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar。
- runtime,只在运行时使用,如JDBC驱动,适用运行和测试阶段。
- test,只在测试时使用,用于编译和运行测试代码。不会随项目发布。
- system,类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它。
其中,scope为test时,在eclipse和idea中还有点区别:
在eclipse中,无论在哪个路径下都可以使用@Test等注解,但是在idea中,只能在src/test/java/下的java类可以使用@Test等注解,如果在src/main/java/中使用,则会找不到这些注解。
3 optional标签的作用
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<!-- 表示依赖不会传递 -->
<optional>true</optional>
</dependency>