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本地存储库目录-未解析属性?_Maven - Fatal编程技术网

使用美元名称的maven本地存储库目录-未解析属性?

使用美元名称的maven本地存储库目录-未解析属性?,maven,Maven,目前我正在调试一个恼人的maven情况,其中一个简单的 mvn dependency:tree 抱怨 The POM for com.bitplan.java:com.bitplan.bobase:jar:${bobase.version} is missing, no dependency information available 因此,似乎某个地方没有定义属性。但相关母公司pom显然有: <properties> <bobase.version>0.0.

目前我正在调试一个恼人的maven情况,其中一个简单的

mvn dependency:tree
抱怨

The POM for com.bitplan.java:com.bitplan.bobase:jar:${bobase.version} is missing, no dependency information available
因此,似乎某个地方没有定义属性。但相关母公司pom显然有:

<properties>
    <bobase.version>0.0.2</bobase.version>
</properties>
出现了。所以我很好奇,看看是否还有更多这样的东西:

 cd $HOME/.m2/repository
 find . -type d | grep "\\$"
现在给我27个结果

./net/sourceforge/htmlcleaner/htmlcleaner/${htmlcleaner.version}
./junit/junit/${junit.version}
./junit/junit/${junit4.version}
./org/hamcrest/hamcrest-all/${hamcrestall.version}
./org/apache/commons/commons-lang3/${commons.version}
./commons-io/commons-io/${commons-io.version}
./commons-io/commons-io/${commons.io.version}
./args4j/args4j/${args4j.version}
我只理解其中一个案例——commons.io.version-one——这是一个打字错误,我修正了它。所有其他变量都应该是解引用ok,并且不应该有任何这样的目录

是什么导致了这种专业行为?如何避免这种行为?

我只发现了一个相关的问题:

但这并没有给我任何有用的暗示

调试

find . -type d -name "*\$*" -exec echo -n {} \; -exec stat -f %Sm -t " "%Y-%m-%d {} \;
显示目录的上次修改时间。例如

./junit/junit/${junit.version} 2018-08-22
./junit/junit/${junit4.version} 2017-05-28
因此,在我的情况下,这个问题似乎每隔一段时间就会发生一次

 mvn deploy
如果pom的版本尚未升级,则需要对父pom进行更新

 mvn install

这是不够的。变量的解析将在存储库中的“旧”设置上完成

当您第一次声明一个依赖项,并将
设置为引用一个属性,但该属性尚未在pom文件中定义时,就会发生这种情况。当然-这是显而易见的。但是,当属性已经定义时,为什么还会发生这种情况呢?关于删除多余的存储库目录,我在
 mvn install