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_Release_Maven Release Plugin - Fatal编程技术网

Maven 具有快照测试依赖项的发布项目

Maven 具有快照测试依赖项的发布项目,maven,release,maven-release-plugin,Maven,Release,Maven Release Plugin,我正在使用快照依赖项,仅用于项目中的测试 <dependency> <groupId>com.my-company</groupId> <artifactId>my-test-library</artifactId> <version>LATEST</version> <scope>test</scope> &

我正在使用快照依赖项,仅用于项目中的测试

    <dependency>
        <groupId>com.my-company</groupId>
        <artifactId>my-test-library</artifactId>
        <version>LATEST</version>
        <scope>test</scope>
    </dependency>
我的
依赖关系管理

<distributionManagement>
    <repository>
        <uniqueVersion>true</uniqueVersion>
        <id>rep-releases</id>
        <name>Release Repo</name>
        <url>${url}</url>
    </repository>
    <snapshotRepository>
        <uniqueVersion>true</uniqueVersion>
        <id>rep-snapshots</id>
        <name>Snapshots Repo</name>
        <url>${url}</url>
    </snapshotRepository>
</distributionManagement>

真的
代表发布
解除回购
${url}
真的
代表快照
快照回购
${url}

为什么测试代码与发布过程有关?如何继续发布并保持依赖关系不变?

您所做的实际上违反了所有规则,您还应该首先发布测试依赖关系,然后发布,然后将项目版本切换到快照,并将测试范围的依赖关系恢复到快照

如果你真的,真的,真的必须做一些愚蠢的事情,那么你可以指定这个选项。但是,这将忽略在
pom.xml
中定义的任何
SNAPSHOT
依赖项,这更糟糕


你已经被警告了。请自行承担风险,愿上帝保佑

如果您知道使用最新版本的所有后果。您可以使用以下命令:

mvn release:prepare  -DignoreSnapshots=true

property
ignoreSnapshots=true
要允许快照依赖关系

您是否也可以共享pom.xml中的
distributionManagement
详细信息不要在版本中使用
最新的
之类的内容……此外,如果您依赖于未发布的测试代码,则无法重新生成。这就是发布插件抱怨的原因…@khmarbaise正如我所写的,我知道使用最新版本而没有可复制版本的所有后果。我只是想问为什么发布插件在试图发布生产代码时会抱怨测试代码。@nullpointer
dependencyManagement
addedIt抱怨是可以理解的:如果使用的是仍在开发中的测试代码,则无法确保要发布的生产代码按照预期进行了正确测试。谢谢,我问题的一部分得到了回答。但第二个仍然是开放的-为什么发布插件会检查测试范围的依赖关系?它不应该只检查生产代码的依赖关系吗?因为创建一个发行版的整个要点是,在将来的任何给定时间点,您的代码都将具有完全可复制的状态。如果您有一个任何类型的
快照
,并且在五个月内重建了代码,那么该测试依赖关系可能已经改变,您的标记代码可能不再工作,并且肯定不可复制。
mvn release:prepare  -DignoreSnapshots=true