想必当使用eclipse编写程序时,总会遇到一些莫名其妙的问题,比如说提示找不到某个类或方法,明明没有语法错误却说有语法错误,往往这个时候使用project clean即可轻松解决问题。
然而若是你的项目使用maven编译,也会有一个maven clean,这两个有什么具体区别呢,为此我以一个具体项目做了实验,跟踪项目目录下的target文件夹,得出如下结论:
maven clean
maven clean是maven的一个清洁生命周期,目的是删除build目录下的构建输出,体现在文件系统上是删除了Target目录所有文件,包括该目录!(也可以说是删除了maven install后的所有内容)。
project clean:
project clean是IDE对已经生成的class文件的删除操作,体现在文件系统上是只删除了Target目录中classes文件夹中所有内容!(也可以说是删除了IDE自动编译的所有内容)。
拓展阅读 Maven多仓库配置
maven的中央仓库很强大,绝大多数的jar都收录了。但也有未被收录的。遇到未收录的jar时,就会编译报错。
除了maven官方提供的仓库之外,也有很多的仓库。尽可能的将可信的仓库(嗯,可信的仓库!)添加几个,弥补maven官方仓库的不足。
多仓库配置方式一:全局多仓库设置
全局多仓库设置,是通过修改maven的setting文件实现的。 设置思路:在setting文件中添加多个profile(也可以在一个profile中包含很多个仓库),并激活(即使是只有一个可用的profile,也需要激活)。
修改maven的setting文件,设置两个仓库(以此类推,可以添加多个):
<profiles>
<profile>
<!-- id必须唯一 -->
<id>myRepository1</id>
<repositories>
<repository>
<!-- id必须唯一 -->
<id>myRepository1_1</id>
<!-- 仓库的url地址 -->
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>;
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
</repositories>
</profile>
<profile>
<!-- id必须唯一 -->
<id>myRepository2</id>
<repositories>
<repository>
<!-- id必须唯一 -->
<id>myRepository2_1</id>
<!-- 仓库的url地址 -->
<url>http://repository.jboss.org/nexus/content/groups/public-jboss/</url>;
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
</repositories>
</profile>
</profiles>
<activeProfiles>
<!-- 激活myRepository1 -->
<activeProfile>myRepository1</activeProfile>
<!-- 激活myRepository2 -->
<activeProfile>myRepository2</activeProfile>
</activeProfiles>
多仓库配置方式二:在项目中添加多个仓库
在项目中添加多个仓库,是通过修改项目中的pom文件实现的。
思路:在项目中pom文件的repositories节点(如果没有手动添加)下添加多个repository节点,每个repository节点是一个仓库。
修改项目中pom文件,设置两个仓库(以此类推,可以添加多个):
<repositories>
<repository>
<!-- id必须唯一 -->
<id>jboss-repository</id>
<!-- 见名知意即可 -->
<name>jboss repository</name>
<!-- 仓库的url地址 -->
<url>http://repository.jboss.org/nexus/content/groups/public-jboss/</url>;
</repository>
<repository>
<!-- id必须唯一 -->
<id>aliyun-repository</id>
<!-- 见名知意即可 -->
<name>aliyun repository</name>
<!-- 仓库的url地址 -->
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>;
</repository>
</repositories>
注:以上两种方式的id值均不可以为“central”。