访问本地maven仓库中jar以外的文件

Access a file other than jar in local maven repository

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

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

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

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

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

我知道maven主要是做jar的分发和管理,但是有些情况下在大的java项目中可能需要一些小的native工作,最好把它们都放在一起,打包根据需要。

正在将文件部署到存储库

可以将二进制文件放入 local/company 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>