java-我可以在Maven中部署配置文件以及生成的jar

我有一个DropWizard Java项目,该项目在运行mvn软件包时会构建一个Shaded Jar.我有一个通过TeamCity构建的项目,并将生成的Jar Pom部署到Artifactory.

要运行此项目,我需要一个配置Yaml文件.此文件目前尚未部署到工件.

问题:有没有办法在POM中添加一个步骤来遍历配置文件以及jar和pom,以便teamcity也可以将其部署到Artifactory?

目前,我看到的唯一实现此目的的方法是在Teamcity的“ include”部分中添加配置文件的路径.但是,这将覆盖默认的包括:mvn包中的结果文件.

我尝试了maven Resource插件,但这只是将配置文件添加到生成的阴影jar中.

解决方法:

您可以使用build-helper-maven-plugin及其attach-artifact目标.

例如,将file.txt文件作为maven项目的一部分,并位于其pom.xml文件的同一级别,则可以具有以下pom:

<project>
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.sample</groupId>
    <artifactId>sample-project</artifactId>
    <version>0.0.1-SNAPSHOT</version>

    <build>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>
                <version>1.10</version>
                <executions>
                    <execution>
                        <id>attach-artifacts</id>
                        <phase>package</phase>
                        <goals>
                            <goal>attach-artifact</goal>
                        </goals>
                        <configuration>
                            <artifacts>
                                <artifact>
                                    <file>${basedir}/file.txt</file>
                                    <type>txt</type>
                                </artifact>
                            </artifacts>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

</project>

请注意插件的配置:基本上,它是作为文件的其他工件附加的file.txt文件.

注意事项:按照默认工件(在本例中为jar),附加的附加工件也将遵循命名约定.在这种情况下,file.txt文件将重命名为sample-project-0.0.1-SNAPSHOT.txt(使其唯一).它的内容虽然不会改变.

因此,在安装(mvn全新安装)时,将创建以下构件:

> sample-project-0.0.1-SNAPSHOT.jar>默认项目工件,基于项目包装
> sample-project-0.0.1-SNAPSHOT.pom>以.pom扩展名重命名的pom.xml文件,首先由依赖项中介使用,以检查在传递库的情况下的传递性依赖项
> sample-project-0.0.1-SNAPSHOT.txt>附加的附加工件

上一篇:通过python脚本部署到工件


下一篇:docker多架构镜像构建