1 maven中的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/中使用,则会找不到这些注解。
2 idea2018.3.6,离线使用maven的方法
-
想办法拷贝联网电脑上已经下载好的仓库文件夹mavenRepository到离线环境的电脑上;
-
idea中按照如下图中配置:
-
打开 User settings file中设置的settings.xml文件,取消所有的
<proxies>, <mirrors>
设置,然后在<mirrors>
中增加以下设置(设置本地仓库为在线仓库):
<mirror>
<id>repo1</id>
<name>central</name>
<mirrorOf>*</mirrorOf>
<url>file://D:/Develop/mavenRepository</url>
</mirror>
- idea中reimport按钮,多点几次。
注: 之所以这么配置,是为了package打包时,需要验证下载下载了所有的jar包,直接可以从本地验证,不会报错。
另外,最好自己新建maven工程,不要直接打开或导入工程,后者可能会有问题。