Maven:使用其 ftp 地址在本地存储库中安装一个 jar

史蒂夫

我的 maven 本地存储库位于 Windows 机器上,我正在尝试使用 Eclipse 使用 jar 的 ftp 地址(jar 位于 linux 机器上)在此存储库中安装一个 jar。这是我的settings.xmlpom.xml

设置.xml

   <server>
    <id>{server_address}</id>
    <username>username</username>
    <password>password</password>
    <configuration>
        <endpointChecking>false</endpointChecking>
    </configuration>
  </server>

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.maven.bcone</groupId>
<artifactId>ArtifactName</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>Sample</name>
<properties>
    <ics.version>17.4.5</ics.version>
    <ftp.dir>//sftp://username@{server_address}</ftp.dir>
</properties>

<dependencies>
    <dependency>
        <groupId>com.oracle.ics</groupId>
        <artifactId>cpi_omcs.jar</artifactId>
        <version>${ics.version}</version>
    </dependency>

</dependencies>
<build>
    <finalName>BuildName</finalName>

    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-install-plugin</artifactId>
            <version>2.5.2</version>
            <executions>
                <execution>
                    <id>install-cpi_omcs</id>
                    <phase>clean</phase>
                    <configuration>
                        <file>${ftp.dir}/home/steve/myJars/cpi_omcs.jar</file>
                        <groupId>com.oracle.ics</groupId>
                        <artifactId>cpi_omcs</artifactId>
                        <version>${ics.version}</version>
                        <packaging>jar</packaging>
                        <generatePom>true</generatePom>
                    </configuration>
                    <goals>
                        <goal>install-file</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

        <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>
    </plugins>
    <repositories>
        <repository>
            <id>{server_address}</id>
            <name>158_bcone</name>
            <url>sftp://username@{server_address}</url>
            <layout>default</layout>
            <releases>
                <enabled>true</enabled>
                <updatePolicy>always</updatePolicy>
            </releases>
        </repository>
    </repositories>
  </project>

运行 mvn:clean 后,出现以下错误

[错误] 无法在项目 BconeAdapter 上执行目标 org.apache.maven.plugins:maven-install-plugin:2.5.2:install-file (install-cpi_omcs): 指定的文件 '\\sftp:\username@{server_addres }\home\steve\myJars\cpi_omcs.jar' 不存在 -> [帮助 1]

jar 文件存在于上述位置,但 maven 无法找到它。我在这里缺少什么?

史蒂夫

我能够使用这些 Maven 插件来做到这一点

<properties>
    <ics.version>18.1.3</ics.version>
    <temp.dir>./temp/</temp.dir>
    <ftp.dir>scp://username:password@server-address</ftp.dir>
    <ics.dir>/u01/app/oracle/lib</ics.dir>
</properties>

    <build>
    <finalName>MyProject</finalName>
    <plugins>

        <!-- DOWNLOAD THE JAR FILES TO A TEMP FOLDER ON THE LOCAL MACHINE -->
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>wagon-maven-plugin</artifactId>
            <version>1.0</version>

            <executions>
                <execution>
                    <id>download-ftp-suite</id>
                    <configuration>
                        <url>${ftp.dir}:${ics.dir}</url>
                        <toDir>${temp.dir}</toDir>
                        <includes>
                            */**/*.jar
                        </includes>
                    </configuration>
                    <goals>
                        <goal>download</goal>
                    </goals>
                </execution>
              </executions>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-install-plugin</artifactId>
            <version>2.5.2</version>
            <executions>

                <execution>
                    <id>install-one-of-the-downloaded-jars</id>
                    <phase>site</phase>
                    <configuration>
                        <file>${temp.dir}one-of-the-downloaded-jars.jar</file>
                        <groupId>com.oracle.ics</groupId>
                        <artifactId>one-of-the-downloaded-jars</artifactId>
                        <version>${ics.version}</version>
                        <packaging>jar</packaging>
                        <generatePom>true</generatePom>
                    </configuration>
                    <goals>
                        <goal>install-file</goal>
                    </goals>
                </execution>
               </executions>
        </plugin>
     </plugins>


    <extensions>
        <!-- Enabling the use of SSH IN ACCESSING FTP/SCP -->
        <extension>
            <groupId>org.apache.maven.wagon</groupId>
            <artifactId>wagon-ssh</artifactId>
            <version>3.0.0</version>
        </extension>
    </extensions>
</build>

通过这些更改,无需在 settings.xml 中添加服务器详细信息

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在共享项目中从Maven本地存储库中获取一个Eclipse项目来引用源jar?

使用Maven安装本地jar

在Maven [JAVA]中安装到另一个本地存储库

将带有pom的Maven jar安装到本地存储库中

如何从安装了install:install-file的本地Maven存储库中删除jar文件?

有没有一种方法可以在jar中安装jar本地gradle存储库(maven install:install-file

使用gradle将jar上传到本地Maven存储库

如何调用驻留在Maven本地存储库中的JAR?

从本地Maven存储库获取.jar文件

如何在Gradle中使用本地Maven存储库中的jar

如何使sbt使用本地存储库中的jar?

如何阻止Maven将项目构建JAR安装到本地存储库

桌面GUI工具,用于浏览新的jar并将其安装到本地Maven存储库

在 Maven 存储库中找不到 Jar

在Maven中使用一个文件创建JAR

应用本地jar插件而不使用Maven

如何使用外部jar库构建Maven可执行jar?

Maven 会覆盖本地 Maven 存储库中手动修补的 jar 吗?

将独立的jar导入本地Maven存储库

Gradle依赖关系:使用本地jar进行编译还是通过Maven存储库进行编译?

使用jenkins的Maven构建未从本地.m2存储库中提取jar

在Maven阴影jar中包含第3方jar,而无需将其添加到本地存储库

SBT PublishM2不刷新本地Maven存储库中的快照jar

如何在 maven 中创建一个 jar?

在 Maven 生成的 jar 中包含一个 zip 文件

使用Maven将Java代码和依赖项组合到一个jar(可执行jar)中

使用`publishToMavenLocal`构建一个可以发布到maven本地repo的可执行jar——spring boot项目

导入 Maven 本地 .jar 作为库

maven jar选项,在构建过程中创建一个额外的jar