【发布时间】:2018-07-02 13:12:51
【问题描述】:
每当我运行 maven 命令时,我想添加自己的命令来删除 mvn 存储库中的特定文件夹。
对于通过命令提示符使用 maven,这非常简单,因为我们只需更新 apache-maven-3.5.3\bin\mvn.cmd。
但是,我注意到当我们从 intelliJ Maven projects Tool Window 运行 mvn 时,运行命令如下:
C:\mbakOrg\Oracle\JDK\jdk1.8.0_60\bin\java -Dmaven.multiModuleProjectDirectory=
C:\mbakOrg\_CODE\MNE_ARCHIT_GIT\_REPOS\sg-template-store -Dmaven.home=C:\mbakOrg\build\apache-maven-3.5.3 -
Dclassworlds.conf=C:\mbakOrg\build\apache-maven-3.5.3\bin\m2.conf "-javaagent:C:\mbakOrg\devel\JetBrains\IntelliJ IDEA
2017.1.3\lib\idea_rt.jar=42633:C:\mbakOrg\devel\JetBrains\IntelliJ IDEA 2017.1.3\bin" -Dfile.encoding=UTF-8 -classpath
C:\mbakOrg\build\apache-maven-3.5.3\boot\plexus-classworlds-2.5.2.jar org.codehaus.classworlds.Launcher -Didea.version=2017.1.3 clean install
那么我将如何添加一个每次都会运行的命令?
由于InteliJ中的maven是使用自定义方式运行maven的。
说明
我的问题基本上是 mvn -U 命令始终无法正确提取最新代码。此外,我们都在使用经常更新的父项目的快照来解决问题。
【问题讨论】:
-
为什么要删除本地缓存中的目录?您应该使用
mvn package而不是mvn install? -
@khmarbaise 我的问题基本上是 mvn -U 命令始终无法正确拉取最新代码。此外,我们都在使用经常更新的父项目的快照来解决问题。
-
newest code all the time是指预先使用适当代码部署的项目...您是否使用依赖于此代码的依赖项以及是否使用 SNAPSHOT 依赖项?您能否展示您正在使用的 pom 文件的示例以及如何将代码部署到存储库管理器? -
我的意思是我们有一个父 Pom 和依赖项,它实际上是作为一个部署的快照托管在一个 nexus 存储库上的。另一个团队最近进行了很多更改,不幸的是,这只是一个开始,因此他们没有部署版本。因此,因为它是一个快照,所以东西发生了变化,并且正在破坏的东西可能不再破坏(只要 -U 标志已经提取了最新的东西)。所以碰巧我们说“它不起作用”。他们说“使用 -U”,对我们有用。如果我们删除缓存,它确实有效:(
-
在不知道细节和 pom 以及其他人如何通过
mvn deploy进行部署以及您如何在 pom 中准确定义依赖关系的情况下,我不能说是否有问题解决与否..进一步mvn -U clean package应该在不清理本地缓存的情况下工作...
标签: java maven intellij-idea