Maven版本在子模块中执行单个组装

问题描述 投票:2回答:1

我想运行Maven版本,以便它应该为子模块执行assembly:single。我已经将assembly:single作为子模块的install的一部分包含在内,即,当您在顶层运行install时,它将构建具有依赖关系的jar。但是,当运行release:perform时,即使将其配置为调用install(作为目标),它也不会构建具有依赖关系的jar。

如何在顶层运行发布,并使用发布版本在子级别上使此发布执行assembly:single

<modules>
    <module>parent</module>
    <module>api</module>
    <module>testing</module>
    <module>main</module>
</modules>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-release-plugin</artifactId>
            <version>2.5.1</version>
            <configuration>
                <goals>install</goals>
                <completionGoals>install</completionGoals>
            </configuration>
        </plugin>
    </plugins>
</build>

这是main中的子模块

<build>
    <plugins>
        <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <configuration>
                <archive>
                    <manifest>
                        <mainClass>com.example.Main</mainClass>
                    </manifest>
                </archive>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
            </configuration>
            <executions>
                    <execution>
                        <phase>install</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
            </executions>
        </plugin>
    </plugins>
</build>
maven maven-assembly-plugin maven-release-plugin
1个回答
3
投票

对发布插件使用以下配置:

<configuration>
  <preparationGoals>install</preparationGoals>
</configuration>

并从头开始发布准备:

mvn release:prepare -Dresume=false

关于maven-release-plugin参数的更多详细说明:

<goals>install</goals>由release:perform调用。发布:执行将您的存储库克隆到target / checkout目录,并在其中调用安装。

<preparationGoals>install</preparationGoals>由release:prepare调用。在提交之前执行安装,默认为干净验证。

<completionGoals>install</completionGoals>由release:prepare调用。提交后执行安装。在这种情况下,将重复整个构建周期。

© www.soinside.com 2019 - 2024. All rights reserved.