Maven:使用其ftp地址在本地存储库中安装jar
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Maven:使用其ftp地址在本地存储库中安装jar相关的知识,希望对你有一定的参考价值。
我有我的maven本地存储库位于Windows机器上,我正在尝试使用eclipse使用jar的ftp地址(jar位于linux机器上)在此存储库中安装jar。这是我的settings.xml
和pom.xml
的settings.xml
<server>
<id>{server_address}</id>
<username>username</username>
<password>password</password>
<configuration>
<endpointChecking>false</endpointChecking>
</configuration>
</server>
pom.hml
<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后,我得到以下错误
[错误]无法执行目标org.apache.maven.plugins:maven-install-plugin:2.5.2:项目BconeAdapter上的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@10.30.32.158</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中添加服务器详细信息
也许你应该使用maven-wagon
。我不确定maven-install-plugin
是否可以处理网络路径。
其余部分是Apaches页面的完全复制和粘贴,因为它是使解决方案正常工作所需的最低基本信息
来自Apache maven deploy plugin page
要使用FTP部署工件,您必须首先在POM的distributionManagement元素中指定使用FTP服务器,并在构建元素中指定一个扩展,该扩展将引入使用FTP部署所需的FTP工件:
<distributionManagement>
<repository>
<id>ftp-repository</id>
<url>ftp://repository.mycompany.com/repository</url>
</repository>
</distributionManagement>
<build>
<extensions>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ftp</artifactId>
<version>*version*</version>
</extension>
</extensions>
</build>
您的settings.xml将包含一个服务器元素,其中该元素的id与上面POM中指定的FTP存储库的id匹配:
<settings>
...
<servers>
<server>
<id>ftp-repository</id>
<username>user</username>
<password>pass</password>
</server>
</servers>
...
</settings>
当然,在尝试使用Maven进行部署之前,您应该确保可以手动登录到指定的FTP服务器。一旦确认所有内容都已正确设置,您现在可以使用Maven部署工件:
mvn deploy
以上是关于Maven:使用其ftp地址在本地存储库中安装jar的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 PAT 从本地 Azure Artifacts 存储库在 docker 容器中安装 powershell 模块?