如何使用maven创建发布包?

Łuk*_*nik 4 java maven-2

我使用Maven2构建了一个桌面应用程序.

我想不时发布一个版本(只需将所有项目和第三方jar复制到一个目录中并生成一个run.bat文件).

怎么做 ?

dog*_*ane 8

例如,您需要自己创建run.bat并将其放在src/main/assembly/scripts中.然后,您需要在src/main/assembly中创建一个assembly.xml文件.

以下是您可能要使用的assembly.xml文件的示例.它会创建一个包含所有依赖项jar和run.bat的tar.gz.

<assembly>
    <id>1.0</id>
    <formats>
        <format>tar.gz</format>
    </formats>
    <includeBaseDirectory>false</includeBaseDirectory>
    <dependencySets>
        <dependencySet>
            <outputDirectory>/lib</outputDirectory>
        </dependencySet>
    </dependencySets>
    <fileSets>
        <fileSet>
            <directory>target</directory>
            <outputDirectory>/lib</outputDirectory>
            <includes>
                <include>*.jar</include>
            </includes>
        </fileSet>
        <fileSet>
            <directory>src/main/assembly/scripts</directory>
            <outputDirectory>/scripts</outputDirectory>
            <includes>
                <include>*.bat</include>
            </includes>
        </fileSet>
    </fileSets>
</assembly>
Run Code Online (Sandbox Code Playgroud)

最后,在你的pom.xml文件中添加程序集插件:

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-assembly-plugin</artifactId>
        <configuration>
            <descriptors>
                <descriptor>src/main/assembly/assembly.xml</descriptor>
            </descriptors>
        </configuration>
        <executions>
            <execution>
                <phase>package</phase>
                <goals>
                    <goal>attached</goal>
                </goals>
            </execution>
        </executions>
    </plugin>
Run Code Online (Sandbox Code Playgroud)

现在,当您运行"mvn install"时,您应该看到您的tar.gz已创建.

要发布运行:

mvn release:准备
mvn release:perform


Mic*_*low 0

我会使用 Maven 发布插件,请参阅: