Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.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
Java Maven发布插件:创建不依赖快照的标记_Java_Maven_Maven Release Plugin - Fatal编程技术网

Java Maven发布插件:创建不依赖快照的标记

Java Maven发布插件:创建不依赖快照的标记,java,maven,maven-release-plugin,Java,Maven,Maven Release Plugin,我正在使用Maven发布插件,我正在尝试发布。当我使用master(我使用Git)时,我的项目(多模块)和依赖项(多模块)都有快照版本 假设我想从没有使用快照的master创建一个标记(跳过分支的创建) 这是我的简化pom.xml: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http:

我正在使用Maven发布插件,我正在尝试发布。当我使用master(我使用Git)时,我的项目(多模块)和依赖项(多模块)都有快照版本

假设我想从没有使用快照的master创建一个标记(跳过分支的创建)

这是我的简化pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>

<artifactId>results</artifactId>
<version>1.2-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Results parent module</name>

<modules>
    <module>results-web</module>
    <module>results-persistence</module>
    <module>results-domain</module>
    <module>results-logic</module>
    <module>results-logic-api</module>
    <module>results-ear</module>
    <module>results-configuration</module>
    <module>results-rules-ejb</module>
    <module>results-rules</module>
    <module>results-rest</module>
</modules>

<properties>
    <dependency1.version>1.2.3-SNAPSHOT</main.version>
    <dependency2.version>3.4.5-SNAPSHOT</main.version>
</properties>

<build>
    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-release-plugin</artifactId>
                <version>2.4.1</version>
                <configuration>
                    <tagNameFormat>@{project.version}</tagNameFormat>
                    <autoVersionSubmodules>true</autoVersionSubmodules>
                    <localCheckout>true</localCheckout>
                    <pushChanges>false</pushChanges>
                </configuration>
            </plugin>
        </plugins>
    </pluginManagement>
</build>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.my.project</groupId>
            <artifactId>dependency1-domain</artifactId>
            <version>${dependency1.version}</version>
        </dependency>
        <dependency>
            <groupId>org.my.project</groupId>
            <artifactId>dependency1-enumerations</artifactId>
            <version>${dependency1.version}</version>
        </dependency>
        <dependency>
            <groupId>org.my.project</groupId>
            <artifactId>dependency1-logic</artifactId>
            <version>${dependency1.version}</version>
            <type>ejb</type>
        </dependency>
        <dependency>
            <groupId>org.my.project</groupId>
            <artifactId>dependency2-domain</artifactId>
            <version>${dependency2.version}</version>
        </dependency>
        <dependency>
            <groupId>org.my.project</groupId>
            <artifactId>dependency2-enumerations</artifactId>
            <version>${dependency2.version}</version>
        </dependency>
        <dependency>
            <groupId>org.my.project</groupId>
            <artifactId>dependency2-logic</artifactId>
            <version>${dependency2.version}</version>
            <type>ejb</type>
        </dependency>
    </dependencies>
</dependencyManagement>

4.0.0
结果
1.2-1
聚甲醛
结果父模块
结果网
结果持久性
结果域
结果逻辑
结果逻辑api
结果耳
结果配置
结果规则ejb
结果规则
结果休息
1.2.3-快照
3.4.5-快照
org.apache.maven.plugins
maven发布插件
2.4.1
@{project.version}
真的
真的
假的
org.my.project
依赖域1
${dependency1.version}
org.my.project
依赖项1枚举
${dependency1.version}
org.my.project
依赖1逻辑
${dependency1.version}
ejb
org.my.project
依赖域2
${dependency2.version}
org.my.project
依赖项2枚举
${dependency2.version}
org.my.project
依赖2逻辑
${dependency2.version}
ejb

如果我这样做:

mvn版本:prepare-Darguments=“-dependency1.version=1.2.3.0 -Ddependency2.version=3.4.5.0“

创建仍具有快照依赖项的分支的步骤:

<properties>
    <dependency1.version>1.2.3-SNAPSHOT</main.version>
    <dependency2.version>3.4.5-SNAPSHOT</main.version>
</properties>

1.2.3-快照
3.4.5-快照
如果上面的零件是:

<properties>
        <dependency1.version>1.2.3.0</main.version>
        <dependency2.version>3.4.5.0</main.version>
</properties>

1.2.3.0
3.4.5.0

发布插件的设计不是为了解决这个用例

通过劫持
preparationGoals
completionGoals
来调用编辑pom的插件,您可能会成功。。。当然,当我添加
completionGoals


但是现在,如果无法获得插件来编辑和取消编辑pom以设置版本,您将不得不手动编辑,发布插件无法更改pom中不属于反应器的依赖版本

试试这个。您可以使用将所有快照依赖项替换为相应的版本。如果要手动替换它们(可能是因为版本与快照不同),可以使用versions:set。但这两种方法都不适用于属性中提供的依赖项版本。For properties与设置allowSnapshots=false一起使用。如果不需要特殊的版本范围,这个目标会自动实现,但也可以配置它来处理这些需求

您可以将发布插件配置为调用您的版本插件,如Stephen所述:
clean versions:use releases verify

或者在发布之前手动调用版本插件,例如

mvn版本:使用发布scm:checkin-Dmessage=“依赖项的发布版本”