在本地maven存储库中访问jar以外的文件

时间:2016-09-29 08:51:49

标签: maven path install native executable

是否可以从maven存储库中读取消费者的一些资源文件(而不是jar)?

我可以使用以下命令安装它们:

mvn install:install-file -Dfile=mycommand -DgroupId=mygroupid -DartifactId=myartifactid -Dpackaging=bin -Dversion=1

文件mycommand是一个常规的本机可执行文件,我想安装并可能部署在我的本地存储库中。

我这样做的原因是,我希望在另一个maven项目中检索此文件并访问它(并可能通过exec:exec目标使用它。)

我知道maven基本上是用于jar分发和管理,但有些情况下,在一个大的java项目中可能需要小的本地工作,并且最好将它们全部放在一起,根据需要打包。

1 个答案:

答案 0 :(得分:1)

将文件部署到存储库

可以将二进制文件放在本地/公司的Maven存储库中。

此处有更多详情: Upload linux binary file to maven repository

在其他版本中使用

这可以通过maven-dependency-plugin实现。

以下是一个项目如何复制其他地方构建的WAR文件的示例。 我们的想法是将其添加为依赖项,然后将其复制到您选择的文件夹中:

<dependencies>
    <dependency>
        <groupId>some.group.id</groupId>
        <artifactId>some-artifact-to-copy</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <type>war</type>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <version>2.10</version>
            <executions>
                <execution>
                    <id>copy.some.artifact</id>
                    <goals>
                        <goal>copy-dependencies</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>${project.basedir}</outputDirectory>
                        <excludeTransitive>true</excludeTransitive>
                        <stripVersion>true</stripVersion>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>