当我运行Maven安装时,我看到我的.jar
文件被复制到存储库位置:
[INFO] --- maven-install-plugin:2.4:install (default-install) @ data-model ---
[INFO] Installing E:\java\web\data-model\target\rest-server.jar to C:\Users\Stefan\.m2\repository\com\mahlzeit\server\data-model\0.0.1-SNAPSHOT\data-model-0.0.1-SNAPSHOT.jar
[INFO] Installing E:\java\web\data-model\pom.xml to C:\Users\Stefan\.m2\repository\com\mahlzeit\server\data-model\0.0.1-SNAPSHOT\data-model-0.0.1-SNAPSHOT.pom
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
我引用了pom.xml
中的内容:
<dependencies>
<dependency>
<groupId>com.mahlzeit.server</groupId>
<artifactId>mahlzeit-data-model</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.mahlzeit.server</groupId>
<artifactId>mahlzeit-shared</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
我当然还有一些来自远程位置的依赖项。这些依赖项将被下载并按原样放入<project>/war/WEB-INF/lib
- 但不是我的本地文件data-model-0.0.1-SNAPSHOT.jar
和shared-0.0.1-SNAPSHOT.jar
。
为什么Maven不会将这些文件与其他文件一样复制到<project>/war/WEB-INF/lib
?
这是/lib
目录,您可以在其中看到Hibernate依赖项已下载并复制到此目录中:
修改:想一想我可能会在试图避开它时遇到same issue again。
答案 0 :(得分:1)
默认情况下,Maven每天检查一次远程存储库上较新版本的依赖项。所以第二天,如果你没有重建这些工件并且其他人进行了更改并将它们部署到远程仓库,那么当你构建战争时,它将从遥控器中提取这些较新的快照。
要避免这种情况,请在离线模式下运行,或确保在构建战争的一天内在本地构建这些工件。