Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven IntelliJ使用带有时间戳的快照而不是-SNAPSHOT来构建工件_Maven_Intellij Idea_Build_Nexus_Snapshot - Fatal编程技术网

Maven IntelliJ使用带有时间戳的快照而不是-SNAPSHOT来构建工件

Maven IntelliJ使用带有时间戳的快照而不是-SNAPSHOT来构建工件,maven,intellij-idea,build,nexus,snapshot,Maven,Intellij Idea,Build,Nexus,Snapshot,我有一个带有快照依赖项的项目。为了简化,假设有一个项目A依赖于库B-0.1-SNAPSHOT A depends on B B作为快照驻留在Nexus存储库中。我可以看到它是用时间戳存储的,所以Nexus中的实际名称类似于:B-0.1-20141126.171716-67.jar 执行后: mvn clean install -U 在项目A上,依赖项B从Nexus下载到我的本地存储库。在那里我可以找到图书馆B的两个罐子: B-0.1-SNAPSHOT.jar B-0.1-20141126.1

我有一个带有快照依赖项的项目。为了简化,假设有一个项目A依赖于库B-0.1-SNAPSHOT

A depends on B
B作为快照驻留在Nexus存储库中。我可以看到它是用时间戳存储的,所以Nexus中的实际名称类似于:B-0.1-20141126.171716-67.jar

执行后:

mvn clean install -U
在项目A上,依赖项B从Nexus下载到我的本地存储库。在那里我可以找到图书馆B的两个罐子:

B-0.1-SNAPSHOT.jar
B-0.1-20141126.171716-67.jar
到目前为止还不错

maven构建完成后,我可以看到B-0.1-SNAPSHOT.jar被用来构建工件(.war文件)

我还将项目A作为maven项目导入IntelliJ。我在Tomcat上运行它。项目由IntelliJ构建,B-0.1-20141126.171716-67.jar被添加到.war文件中

最后,我在WEB-INF/lib目录中同时使用了B-0.1-SNAPSHOT.jar和B-0.1-20141126.171716-67.jar的.war。

对我来说,这似乎是IntelliJ中的一个bug,因为B-0.1-SNAPSHOT.jar应该从本地maven存储库中获取。。。不是时间限制的版本。有没有办法迫使IntelliJ采取适当的行动


Maven版本是3.2.3,Intellij14.0.1(但在13上的行为是相同的)。

我今天遇到了同样的问题,我发现了如何禁用此功能

F4
在您的模块上,进入
工件
然后选择工件的名称
webapp:exploded
并检查帧底部的
显示内容
收音机

转到
WEB-INF/lib
并搜索您的依赖项
B-0.1-SNAPSHOT.jar
并展开该行,您将在其中看到一个
compile output
文件夹,只需删除它,然后重新打包并运行,您现在只有
B-0.1-SNAPSHOT.jar
,带有时间戳的那一个应该消失了


这样做的缺点是,在IntelliJ中运行
A
模块之前,您必须确保
mvn安装
B
模块,因为IntelliJ不会打包您的依赖项,并将其与您刚刚编辑但未安装在本地maven存储库中的代码捆绑在一起。

Hi Alex,你在用Intellij14吗?我有一个问题的步骤“展开行,你会看到一个编译输出文件夹中,只是删除它”。有一行“compile output”,但我无法删除它。我只需右键单击并选择“remove”,我将在今天晚些时候的工作中制作一个屏幕截图。我的问题略有不同。我在其他IntelliJ项目中构建的工件显示了这个问题。在分解视图中(我的是一个EAR:App Inf/lib)我将它们作为存档文件删除,并将它们读作“库文件”(Maven GAVs)@Alex,你能附加更多说明吗?如果符合以下条件,我可以修复它:1.打开项目结构2.在模块中选择webui 3.在“依赖项”选项卡中找到我的快照依赖项,并将it类更改为“B-0.1-SNAPSHOT.jar”,而不是B-0.1-20141126.171716-67.jar(例如).或者这是一种错误的方式,我必须只对工件进行更改?